默认构造函数(缺省构造函数)分析
即没有参数的构造函数
传统认识认为:如果我们自己没定义任何构造函数,那么编译器就会为我们隐式自动定义 一个默认的构造函数,
我们称这种构造函数为:“合成的默认构造函数”
结论:“合成的默认构造函数”,只有在 必要的时候,编译器才会为我们合成出来,而不是必然或者必须为我们合成出来。
必要的时候是什么时候?
示例代码
#include <iostream>
using namespace std;
class MATX
{
public:
MATX() //默认构造函数
{
cout << "goodHAHAHAHA" << endl;
}
};
class MBTX
{
public:
int m_i;
int m_j;
void funct()
{
cout << "IAmVeryGood" << endl;
}
};
int main()
{
MBTX myb;
return 1;
}
编译通过会生成.obj文件:
每个.cpp源文件会编译生成一个.obj(linux下 gcc -c生成.o文件),最终把很多的.obj(.o)文件链接到一起生成一个可执行。
Windows下查看.obj文件
(1)右键单击正在运行程序的文件,打开所在文件夹
(2)进入它的debug文件夹,就可以找到该文件刚才编译生成的.obj文件
(3)找到开始菜单中visual studio中的开发人员命令提示符并打开