C++学习之 构造函数中调用构造函数
2016-02-20 20:46
381 查看
// 构造中调用构造函数练习.cpp : 定义控制台应用程序的入口点。 #include <iostream> using namespace std; class ABC{ public: ABC(int a, int b, int c){ this->a = a; this->b = b; this->c = c; printf("构造函数调用:a%d,b%d,c%d", a, b, c); } ABC(int a,int b){ this->a = a; this->b = b; ABC(a, b, 100); } ~ABC(){ printf("析构函数调用:a%d,b%d,c%d",a,b,c); } private: int a; int b; int c; }; int main() { ABC abc(1,2); return 0; }
显而易见,ABC(int a,int b)中调用了另一个构造函数,此时我们利用之前的知识知道,单独调用构造函数,会产生匿名对象,那么自然会调用构造函数,因此会输出1,2,100,然后同时在这行结束后,会调用析构函数,析构掉匿名对象,屏幕会输出析构函数调用:1,2,100。当abc(1,2)结束后,会调用析构函数,此时c应该是一个随机值。跟100没有关系。
相关文章推荐
- c++异常安全和copy and swap策略
- C++ 回调机制
- 重温C++ 之 重载操作符
- C++中的类所占内存空间总结
- 关于C++虚函数表实例
- 数字相加等于2048c++源代码
- C++学习笔记之 构造函数的初始化列表
- 算法训练 C*++ Calculations
- C++ 创建windows 服务
- [C++]vector,list和deque的区别
- 一个C++小程序——文件整理工具
- C++例程与Java例程的对比
- JSON c语言开发指南
- C/C++程序员应聘常见面试题剖析
- 多线程学习
- 77. Combinations
- POJ1936——All in All
- 夯实基础阶段:第一天:C/C++ 一星难度刷题
- C++单链表的初始化,插入,删除,反转操作
- C++ "#"的作用和用法