c++学习笔记 二(geekband)

Class的两个经典的分类

class without pointer member(s)

class with pointer mumber(s)

类的特殊成员函数

构造函数

与内置类型的初始化操作相似,将类的数据初始化,初始化的顺序与类内定义的数据成员顺序相同;

类名(形参表){...}

无返回值类型,其他与成员函数一样。

拷贝构造函数

与拷贝构造形式相似,数据在类中传递

类名(类名 &对象名){...}

拷贝赋值函数

操作符=的重载

类类型 &  operator =(类名& 对象名){...

return *this

}

析构函数

在程序结束是调用,做收尾工作

~类名(){...}

动态内存

程序中栈内存是静态内存,堆内存是动态内存可以使用new来分配动态空间;

类名*P=new 类名;

与delete P;配合使用

也可以分配动态数组

类名*P=new 类名[];

与delete []P配合;

切记:一定要用delete 释放内存,否则内存泄漏;


类的静态数据成员

静态数据成员

用关键字static声明

为该类的所有对象共享,静态数据成员具有静态生存期。

必须在类外定义和初始化,用(::)来指明所属的类。

类的静态函数成员

类外代码可以使用类名和作用域操作符来调用静态成员函数。

静态成员函数主要用于处理该类的静态数据成员,可以直接调用静态成员函数。

如果访问非静态成员,要通过对象来访问。


面对对象

继承    复合    委托

继承

有三种方式继承 :public ,protect,private

常用公用继承

继承的构造函数

先初始化基类,再初始化派生类。

派生类名::派生类名(参数表):基类名1(基类1初始化参数表),  ...  ,基类名n(基类名n初始化参数),成员对象名1(成员对象1初始化参数列表), ... , 成员对象名m(成员对象m初始化参数列表)

{

派生类构造函数的其他操作;

}

继承的析构函数

先初始化派生类,再初始化基类。


虚函数

non-virtual 你不希望派生类继承重新定义;

virtual 你希望通过派生类继承重新定义;

pure virtual  你希望派生类继承并且一定要重新定义;

你可能感兴趣的:(c++学习笔记 二(geekband))