c++学习之一

来源:互联网 发布:js动态添加样式 编辑:程序博客网 时间:2024/06/05 17:38
  1. 构造函数不要为虚(virtual),vc++6.0反正不支持,报错为“error C2633: 'A' : 'inline' is the only legal storage class for constructors” ,据说CB支持,不过,构造函数本来就没必要为虚,对象初始化时肯定是要调用的;不过,有派生类时析构函数最好还是来虚的....
  2. Delete            
A aa;
delete aa;

B bb;
B
* pb = &bb;
delete pb;

C
* pc = new C;
delete pc;
在上面的代码中aa,bb删除都是不成功的,简单来说new与delete应该是成对出现
        3. 预编译头文件(precompiled header)
            默认的就是stdafx.h,记住每个新加的cpp文件的最开头都要include,详情参阅这里            
        4. C++对象内存布局  
                    普通成员函数,静态成员函数,及静态成员变量皆不会在类的对象中有所表示,成员函数和对象的关            联由编译器在编译时处理,正如我们会在后面看到的那样,编译 器会在编译时决议出正确的普通成员函数            地址,并将对象的地址以this指针的方式,做为第一个参数传递给普通成员函数,以此来进行关联。静态            成员函数类似 于全局函数,不和具体的对象关联。静态成员变量也一样。静态成员函数和静态成员变量和            普通的全局函数及全局变量不同之处在于它们多了一层名字限定。        
                   关于普通继承,子类的对象布局为父类中的数据成员加上子类中的数据成员,多层继承时(如C016),            顶层类在前,多重继承时则最左父类在前
                   详情参阅此处