社区
C++ 语言
帖子详情
请教赋值拷贝
Michael_Xie
2007-09-06 11:22:50
class Base
{
int* num;
...
};
class Derived : public Base
{
char* ch;
...
Derived& operator = ( const Derived& obj )
{
...//在这里我如何使得基类的num也拷贝了一份呢?
}
}
...全文
146
5
打赏
收藏
请教赋值拷贝
class Base { int* num; ... }; class Derived : public Base { char* ch; ... Derived& operator = ( const Derived& obj ) { ...//在这里我如何使得基类的num也拷贝了一份呢? } }
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
5 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
kuike
2007-09-07
打赏
举报
回复
中文注视没解析对
kuike
2007-09-07
打赏
举报
回复
1楼的这个拷贝有问题,完全等同于默认的赋值拷贝,即采用位拷贝方式。num默认是private,所以派生类Drived无法访问父类的该私有成员。
class Base
{
int* num;
...
public:
Base& operator=(const Base& b)
{
if(this == &b)
return *this;
if(num)
delete num;
num = new int;
*num = *Base.num;
return *this;
}
};
class Derived : public Base
{
char* ch;
...
Derived& operator = ( const Derived& obj )
{
if(this == &obj) return *this;
//ÔÚÕâÀïÎÒÈçºÎʹµÃ»ùÀàµÄnumÒ²¿½±´ÁËÒ»·ÝÄØ£¿
CBase::operator=(const_cast(obj));
if(ch)
delete []ch;
ch = new char[strlen(obj.ch)+1];
strcpy(ch, obj.ch);
return *this;
}
}
hilary0810
2007-09-07
打赏
举报
回复
Derived& operator = ( const Derived& obj )
{
if (this != &obj)
memcpy(this,&obj,sizeof(Derived));
return *this
}
Michael_Xie
2007-09-07
打赏
举报
回复
问题已经解决,即:
在Base中正确重载=,然后在Derived的操作符重载=中调用基类的=函数即可。
Base::operator = ( obj )。
谢谢大家的关注!
gooderfeng
2007-09-07
打赏
举报
回复
base提供接口,然后调用base接口设置。
现在的程序子类不能访问父类的私有变量。
C++复习题及答案期末备考复习之用
C++复习题及答,期末复习,供大家期末备考复习之用
深
拷贝
解决对象
赋值
问题
问题:最近做项目的时候遇到一个对象
赋值
问题,输出整个对象和直接输出对象的某个属性,结果竟然是不一样的,当时觉得也是有点神奇,附上代码和输出情况因为在waterAndRainForm表单没有elementCode这个字段,所以就先把选中的checkCode
赋值
给waterAndRainForm表单。发现直接输出this.waterAndRainForm.elementCode的时候,输出的是cba,没点开this.waterAndRainForm对象的详细信息的时候显示的也是cba,但是一点开看到的却是823
深浅
拷贝
和直接
赋值
的区别
在当今几乎所有流行编程语言中规则设计思想都是一致的,也就正印证了编程语言一门通万门通的道理,万变不离其宗,今天深浅
拷贝
亦是如此。
(网页)Angular.js 中 copy
赋值
与 =
赋值
区别
转自st.gg Angular.js 中 copy
赋值
与 =
赋值
区别 为什么用$scope.user = $scope.master;$scope.master 会跟着 $scope.user 改变?angular.copy 和 = 号
赋值
有什么区别呢?新手还没有搞懂,
请教
各位了。 <!DOCTYPE html> <html> <...
使用 JSON.parse JSON.stringify 深
拷贝
数据之后发生断链现象
使用JSON.parse JSON.stringify 深
拷贝
数据之后发生断链现象 最近发现使用JSON.parse JSON.stringify进行深
拷贝
数据之后,原型链上的方法有地丢失,俗称断链,后面大致又查资料,又
请教
朋友才有了解决办法, 至于为啥会发生我也不知道,可以去看下面的文章; 一句话来总结出现断链的情况:对象的prototype被重新
赋值
(也就是
赋值
表达式),就会导致原型链断链。 一段代码来表示:obj.prototype = newObj;那么obj的原型链就会断了,如果之前...
C++ 语言
65,206
社区成员
250,519
社区内容
发帖
与我相关
我的任务
C++ 语言
C++ 语言相关问题讨论,技术干货分享,前沿动态等
复制链接
扫一扫
分享
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++
技术论坛(原bbs)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
请不要发布与C++技术无关的贴子
请不要发布与技术无关的招聘、广告的帖子
请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下
试试用AI创作助手写篇文章吧
+ 用AI写文章