C++(第二课) 学习笔记

2016-05-20  本文已影响0人  DemonWNB

构造函数

当在创建一个类的对象时,会自动调用构造函数。构造函数可以重载。

但参数的构造函数可以当作转换函数来使用,代码如下

class A

{

private:

int a;

public:

A(int n):a(n){}

}

int main()

{

A a = 10; // 调用单参数的构造函数

return 0;

}

赋值构造函数

函数原型是: className(const className &c);

如果类的成员含有指针变量,则应该重载该函数。如果不重载,在使用一个对象创建另一个对象时就只会拷贝指针的值, 而不会拷贝指针所指向的内容。这样会导致内存被重复释放。

赋值运算符函数

函数原型是: className& operator=(const className &c);

该函数同样是在有成员指针变量的情况下需要重载。如果不重载,在使用一个对象给另一个对象赋值时,会导致内存的泄漏,并且也会导致内存的重复释放。

在重载该函数时,还有一个需要注意的地方是,需要判断传入的对象是否自身,如果不判断的话,在传入自身时会丢失数据。

上一篇下一篇

猜你喜欢

热点阅读