1.基本概念
类的定义:
struct 和 class都可以建立一个自定义类型,在c++中他们的区别仅仅是默认的访问控制不同.结构: class X {...};控制访问:
public: 公用部分,外部能够访问
privater: 私有部分,只有类内部和友元能访问
还有一种能让子类也能访问的方式
构造与析构:
构造函数具有与类同样的名字且不带返回值,如果一个类有构造函数,那么所有对象的初始化都将通过这个函数完成
在构造函数的形参表中,也能给每个参数一个默认值,
其他:
按照默认约定,类对象可以复制,并有一个默认复制构造函数, 他把每个成员进行复制,你也可以自己定义X::X(const X&);
在成员函数的形参表后, 在{}前的 const,代表这个函数不会修改类的成员学会灵活运用子引用,如果一个函数是在类内部定义的,而不是声明,那他就被作为一个在线函数, inline这种函数应该是小的,频繁使用的函数
协助函数,一般定义在类申明的文件中,也可放到同一个名字空间里一个A类包含令另一个类B, 当建立一个类A的对象时候,如果未提供初始值,用的默认构造函数, 那么类A还会去调用类B或者A的基类调用它们的默认构造函数
局部变量的构造函数将在控制现成运行到此时构造,离开块时析构,析构的顺序与构造相反
注意:
如果类中的成员是指针类型,就必须明确定义 复制赋值构造函数
X& operator==(const X&);
否则当建立另一个对象时,用前一个对象的值初始化就会将指针指向前一个对象的指针所指向的内存,
当析构时,会析构2次!
有 new 就得有 delete
在类中成员的构造总是按照成员声明的顺序进行,所以在构造函数初始化列表中最好也一致的用此顺序,析构则相反
坚持用构造函数初始化列表初始化,这样更加效率,而不选择赋值