社区
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也拷贝了一份呢?
}
}
...全文
141
5
打赏
收藏
请教赋值拷贝
class Base { int* num; ... }; class Derived : public Base { char* ch; ... Derived& operator = ( const Derived& obj ) { ...//在这里我如何使得基类的num也拷贝了一份呢? } }
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用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++的重要特性,要熟悉指针的声明、
赋值
、解引用以及通过指针操作数组。 4. **结构体与联合**:学习如何定义和使用结构体,以及结构体在内存中的存储方式。联合是另一种复合数据类型,了解其工作原理。 5. *...
深
拷贝
解决对象
赋值
问题
问题:最近做项目的时候遇到一个对象
赋值
问题,输出整个对象和直接输出对象的某个属性,结果竟然是不一样的,当时觉得也是有点神奇,附上代码和输出情况因为在waterAndRainForm表单没有elementCode这个字段,所以就...
深浅
拷贝
和直接
赋值
的区别
在当今几乎所有流行编程语言中规则设计思想都是一致的,也就正印证了编程语言一门通万门通的道理,万变不离其宗,今天深浅
拷贝
亦是如此。
(网页)Angular.js 中 copy
赋值
与 =
赋值
区别
转自st.gg Angular.js 中 copy
赋值
与 =
赋值
区别 为什么用$scope.user = $scope.master;$scope.master 会跟着 $scope....新手还没有搞懂,
请教
各位了。 <!DOCTYPE html> <html> <...
使用 JSON.parse JSON.stringify 深
拷贝
数据之后发生断链现象
最近发现使用JSON.parse JSON.stringify进行深
拷贝
数据之后,原型链上的方法有地丢失,俗称断链,后面大致又查资料,又
请教
朋友才有了解决办法, 至于为啥会发生我也不知道,可以去看下面的文章; 一句话来总结...
C++ 语言
65,186
社区成员
250,526
社区内容
发帖
与我相关
我的任务
C++ 语言
C++ 语言相关问题讨论,技术干货分享,前沿动态等
复制链接
扫一扫
分享
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++
技术论坛(原bbs)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
请不要发布与C++技术无关的贴子
请不要发布与技术无关的招聘、广告的帖子
请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下
试试用AI创作助手写篇文章吧
+ 用AI写文章