在c++中对于常成员函数,下面描述正确的是( )。
A、类的成员函数可以操作常对象B、类的成员函数不能操作常对象C、只有常成员函数可以操作常对象D、在常成员函数中,常对象可以被更新请给出解释...
A、类的成员函数可以操作常对象 B、类的成员函数不能操作常对象
C、只有常成员函数可以操作常对象 D、在常成员函数中,常对象可以被更新
请给出解释 展开
C、只有常成员函数可以操作常对象 D、在常成员函数中,常对象可以被更新
请给出解释 展开
1个回答
展开全部
你的程序运行很正确,拷贝构造函数正常调用了,从cout<<"constructing copy of"<<s.name<<endl;这行能看出
1、先说你的结果没有输出1234检查一下你的程序,你有哪行代码的功能是输出1234?
2、用途?当然是实现对象的复制,如果可以有a=b(当然这个可以在后面用重载运算符号做到,但毕竟对象不是普通变量)用于对象赋值,可能就没有拷贝构造函数这一概念了,拷贝构造函数并不是非要有不可(本来有默认的),你这个程序有和没有,区别不大,为什么要写拷贝构造函数,这个问题比较好,建意你查下资料,弄清深拷贝和浅拷贝这两个概念,你就清楚了
3、能否用其它代码代替?从这个简单的程序上看,完全可以,功能是唯一的,但代码不是唯一的,如果作为专业人士,这就是必须的了
其实这些问题,最终还是落在了对象的释放,如何让值在内存中不出错,各有所用,该释放时释放,不该释放,就绝不能提前释放,用完后,作为专业程序员是有释放内存这一说的
1、先说你的结果没有输出1234检查一下你的程序,你有哪行代码的功能是输出1234?
2、用途?当然是实现对象的复制,如果可以有a=b(当然这个可以在后面用重载运算符号做到,但毕竟对象不是普通变量)用于对象赋值,可能就没有拷贝构造函数这一概念了,拷贝构造函数并不是非要有不可(本来有默认的),你这个程序有和没有,区别不大,为什么要写拷贝构造函数,这个问题比较好,建意你查下资料,弄清深拷贝和浅拷贝这两个概念,你就清楚了
3、能否用其它代码代替?从这个简单的程序上看,完全可以,功能是唯一的,但代码不是唯一的,如果作为专业人士,这就是必须的了
其实这些问题,最终还是落在了对象的释放,如何让值在内存中不出错,各有所用,该释放时释放,不该释放,就绝不能提前释放,用完后,作为专业程序员是有释放内存这一说的
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询