摘要:
class A{private: int a; int b;public: A(int a, int b) { this->a = a; this->b = b; } A Test(A &aa) { A temp = A(this->a + aa.a, this->b + aa.b); cout < 阅读全文
摘要:
this指针的本质就是一个常量指针。通过const修饰this指针指向的内存空间。 void OpVar(int a ,int b )const <=>const void OpVar(int a ,int b ) <=>void const OpVar(int a ,int b ) 阅读全文
摘要:
malloc()分配动态内存,free释放动态内存;在函数执行过程中不会调用构造函数和析构函数。 int *p = new int(12);在分配内存的同时,初始化;delete(p); int *p1 = new int[10]分配动态数组内存;delete[]p1;在new类对象的时候,会调用类 阅读全文
摘要:
class B { B(int a ,int b):Aa(a) { int m_b = b ; A Aa; } class A { A(int a ) { m_a = a; } int m_ a ; } 2.构造函数中调用构造函数是一种危险的操作 直接调用构造函数,将返回一个匿名对象,若匿名对象没有 阅读全文
摘要:
1.在使用一个对象对另一个对象初始化或赋值时,若对象包含指针成员变量,则需要手动的编写拷贝构造函数实现深拷贝,调用编译器的内部默认的拷贝构造函数则只能实现浅拷贝操作。通过蓝色操作:在拷贝指针的同时为指针重新分配内存空间。 2.通过深拷贝(显示重载=操作符,或显示定义拷贝构造函数)解决浅拷贝出现的问题 阅读全文
摘要:
1.创建一个对象时,常常需要某些初始化操作;注意:类的数据成员是不能在类声明时初始化的。 构造函数是一种特殊的成员函数,与其它成员函数不能,不需要用户调用,在实例化对象时会自动执行构造函数初始化类成员参数。 2.构造函数和析构函数的都用次序 在实例化对象的过程中,先创建的对象,先调用构造函数,后调用 阅读全文