zoukankan      html  css  js  c++  java
  • C++ 构造中调用构造

    //构造中调用构造
    #define _CRT_SECURE_NO_WARNINGS
    #include<iostream>
    using namespace std;
    
    class Point{
    public:
        Point(int _x,int _y,int _z){
            cout << "自定义的有参构造函数被调用了1" << endl;
            x = _x;
            y = _y;
            z = _z;
        }
        Point(int a,int b){
            cout << "自定义的有参构造函数被调用了2" << endl;
            x = a;
            y = b;
            //编译通过  运行通过  数据错误
            Point(a, b, 10);
            //详解:调用有参构造函数Point(a, b, 10);会生成一个匿名对象,但是后续没有代码调用这个匿名对象
            //所以匿名对象会立刻被析构
            //与原来的对象没有任何关系  所以 原来的对象 成员属性 a,b赋值成功  z赋值不成功
        }
        ~Point(){
            cout << "自定义的析构函数被调用了3" << endl;
        }
        void GetNum(){
            printf("pt的值是%d,%d,%d
    ",x,y,z);
        }
    private:
        int x;
        int y;
        int z;
    };
    
    void ProtectA(){
        Point pt(1,1);
        pt.GetNum();
        //根据运行结果图也发现  构造函数被调用了2次  析构了2次  侧面说明了 匿名对象的存在
    }
    
    void main(){
        ProtectA();
    
        system("pause");
    }

  • 相关阅读:
    灭霸-个人冲刺第四天
    单词统计
    第十周总结
    灭霸-个人冲刺第三天
    07-代码大全阅读笔记之一
    灭霸-个人冲刺第二天
    灭霸-个人冲刺第一天
    06-梦断代码阅读笔记之三
    团队项目-用户场景分析
    第九周总结
  • 原文地址:https://www.cnblogs.com/zhanggaofeng/p/5608693.html
Copyright © 2011-2022 走看看