析构函数调用与函数参数传递的创造了一个对象的副本
A s;//A类的对象s test(s);//把对象s传给test1 void test(A a)这个时候执行了析构函数 当把void test(A a)改成void test(A& a)的时候 就不执行析构函数了
初始化列表
class Point{
public:
Point():_x(0),_y(0){};
Point( int x, int y ):_x(x),_y(y){}
private:
int _x, _y;
};
初始化是类时
point3d(int i,int j, int k):m_p(i,j) // 相当于 point m_p(i,j)这样对m_p初始化么m_p是类
:m_BlobList(sizeof(DefBlobTrackerCR));用常量初始化
C++中定义类的对象:用new和不用new有何区别?
不用new时有系统创建并释放,你不要担心会出现内存泄露,但是生命期只有在本区域的大括号内,出了大括号就没用了。用new是指针,要自己释放
纯虚函数
1,当想在基类中抽象出一个方法,且该基类只做能被继承,而不能被实例化;
2,这个方法必须在派生类(derived class)中被实现;