C++里类中的析构函数和拷贝构造函数

刚接触这两个函数。觉得析构函数是用来在退出程序前释放内存的,这个比较神奇,就是程序退出时就自己调用了,并不需要去写出该函数。构造函数说了三点作用:

  1. 通过使用另一个同类型的对象来初始化新创建的对象
  2. 复制对象把它作为参数传递给函数
  3. 复制对象,并从函数返回这个对象
    如果在类中没有定义拷贝构造函数,编译器会自行定义一个。
    如果类带有指针变量,并有动态内存分配,则它必须有一个拷贝构造函数。拷贝构造函数的最常见形式如下:

只是看到了类中有指针变量的和动态内存分配的例子。
感觉这两个函数都是自己就运行了,不需要调用。所以模糊。

1、动态内存分配问题
http://www.cnblogs.com/yingying0907/archive/2012/07/31/2616975.html
① C/C++定义了4个内存区间;
代码区,全局变量与静态变量区,栈区(局部变量区),堆区(动态存储区或自由存储区)

动态分配的例子:
指针变量名=new 类型名(初始化式);
delete 指针名;

② 一般定义的变量和对象要用标识符命名,称命名对象。
动态创建的对象没名字,称为无名对象。

在动态创建char数组的时候会遇到如下问题;

int n;
    char *pc;
    cout << "input" << endl;
    cin >> n;
    pc = new char[n];

    strcpy_s(pc,"内存的动态分配啊");

strcpy_s(pc,”内存的动态分配啊”);

这句话报错,不能只有两个参数,如果变成

char pc[17];
strcpy_s(pc,"内存的动态分配啊");

这个就可以运行。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值