C++创建对象以及匿名对象

在这里插入图片描述

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 使用时要注意 指针用好了很方便 用不好也很危险

三 总结

本人第一篇博客 还是比较生疏的 会越写越好的!!

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值