c++构造函数
默认构造函数
#include <iostream>
using namespace std;
class Person
{
};
//构造函数作用:为对象分配空间,对成员进行初始化
//类默认会有个一个构造函数
//构造函数可以有多个,可以通过重载的方式
//析构函数只能有一个
int main(int argc, char *argv[])
{
Person p1; //默认会有一个构造函数,调用默认构造函数
//编译是可以通过的,可以运行
cin.get();
return 0;
}
默认构造函数 执行效果
在栈和堆调用不同
#include <iostream>
using namespace std;
class People
{
public:
People()
{
cout << "构造函数被调用" << endl;
}
~People()
{
cout << "析构函数被调用" << endl;
}
};
//函数分配在栈上,调用结束,进行释放
void stack_call()
{
People people;
}
//在函数中,通过new初始化,是分配在堆上,调用结束并不会去调用析构函数
void heap_call()
{
People *people = new People;
}
int main(int argc, char *argv[])
{
cout << "在栈上调用,构造和析构都会调用" << endl;
stack_call();
cout << "=========================" << endl;
cout << "在堆上调用,构造会被调用,析构不会被调用" << endl;
heap_call();
cout<<"========================="<<endl;
cin.get();
return 0;
}
在栈和堆调用 效果
秋风
2018-03-18