美文网首页
C++(第二课) 学习笔记

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

作者: DemonWNB | 来源:发表于2016-05-20 07:02 被阅读0次

    构造函数

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

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

    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);

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

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

    相关文章

      网友评论

          本文标题:C++(第二课) 学习笔记

          本文链接:https://www.haomeiwen.com/subject/xjzgrttx.html