学习笔记(16):c++入门到精通教程 c++11/14/17-重载运算符、拷贝赋值运算符、析构函数...

立即学习:https://edu.csdn.net/course/play/9186/191700?utm_source=blogtoedu


//一: 重载运算符
// ==,+=......--;

//if (myTime == myTime2)
//{
//
//}
//两个对象是可以进行类比较  ,我们需要重载 == 运算符;
// 重载说白了 我们要写一个成员函数 ,这个函数名 “operator== ” ,z这个成员函数体里面, 我们就要写一些比较逻辑
//


//正式总结一下
     // 重载运算符 ,本质上是一个函数。 整个函数的正式名 : operator关键字 接 运算符
    // 既然重载运算符本质上是一个函数, 那么就会有返回类型和参数列表
    //有一些运算符 ,如果我们不自己写 该运算符的重载, 那么系统就会自动生成  比如赋值运算符
    /*Time myTime;   
    Time myTime2;
    myTime2 = myTime;*/


    //拷贝赋值运算符
//Time myTime;
//Time myTime2 = myTime;
//Time myTime5 = { myTime };
//
//Time myTime6;
//myTime6 = myTime5;   //既没调用赋值运算符 , 既没有调用构造函数 也没有调用拷贝构造函数
//                    //系统会调用一个 ,拷贝运算符
    //我们可以自己生成的赋值运算符  
    //myTime6就是this对象。 myTime5就是operator等号了里边的参数

// 三 :析构函数 : 相对于构造函数 对象在销毁的时候 会自动调用析构函数
// 如果我们自己不写自己的析构函数 ,编译器也会生成一个默认的析构函数为空{},
// 构造函数里 new,delete.
//析构函数 也是类的成员函数 ,它的名字是由 ~接类名构成的 ,没有返回值 不接受任何参数 不能被重载

//构造函数的成员初始化 : 干了两个事函数体之前 函数体之中。
//析构函数的成员销毁:也干了两个事 函数体 函数体之后;
//成员变量的初始化 和销毁的时机问题

//new对象和delete对象。
    Time* pmytime5 = new Time;//调用的也是不带参数的构造函数
    Time* pmytime6 = new Time();//调用不带参数的构造函数

    //但是我们new出来的东西 系统不会释放 必须自己释放   否则就会内存泄漏

    delete pmytime5;
    delete pmytime6;

 

你可能感兴趣的:(研发管理,c语言,c++11,c++,c++14,语言)