在这里插入图片描述
C++创建对象以及匿名对象
一 在栈上创建对象如下三种方式:
class s
{
public:
s()
{
cout << "调用默认构造函数" << endl;
}
s(int age)
{
cout << "调用带参构造函数" << endl;
}
s(const s& p)
{
m_age = p.m_age;
cout << "调用拷贝构造函数" <<endl;
}
int m_age;
};
int main()
{
s s1();//调用构造函数
s s2(10);//调用带参构造函数
s s3(s2);//调用拷贝构造函数
system("pause");
return 0;
}
还有一种 叫匿名对象
s(10);//这种叫做匿名对象 没有名字 生命周期只在这一行 下一行就被回收掉
//匿名对象不可以调用拷贝构造函数
//匿名对象具有常属性
程序的输出结果是:
注意!!
1 在栈上创建的对象不需要自己释放,不会出现内存泄漏的问题
2 在栈上创建的对象生命周期只在大括号之内
二 在堆上开辟空间创建对象
s *s3 = new s();
delete s3;
注意!!
1 在堆上开辟空间创建对象是要手动释放的,delete手动释放
2 s3本质上是一个指针 指针的使用比较灵活
3 使用时要注意 指针用好了很方便 用不好也很危险
三 总结
本人第一篇博客 还是比较生疏的 会越写越好的!!