社区
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也拷贝了一份呢?
}
}
...全文
134
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接口设置。
现在的程序子类不能访问父类的私有变量。
深
拷贝
解决对象
赋值
问题
问题:最近做项目的时候遇到一个对象
赋值
问题,输出整个对象和直接输出对象的某个属性,结果竟然是不一样的,当时觉得也是有点神奇,附上代码和输出情况因为在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> <...
深浅
拷贝
和直接
赋值
的区别
在当今几乎所有流行编程语言中规则设计思想都是一致的,也就正印证了编程语言一门通万门通的道理,万变不离其宗,今天深浅
拷贝
亦是如此。
erlang 参数传递时是
赋值
or引用?
请教
一个基础问题,erlang 参数传递时是
赋值
or引用? 找不到方法测试。 求教了。 答: erlang 中怎么会有引用这种说法,变量都是
拷贝
过去的。 问: 无法实现引用,是么? 我在写的东西要传一个大状态。 所以疑惑了一下。 答: erlang 所有的变量都只能在函数中传递,没有全局变量这一说。 你传递状态是通过改变函数参数实现的 问: 我不是很清
C++,为什么字符串可以
赋值
给const char* 类型的数据,而不能给char* 类型的数据
赋值
。
先来看三组代码: 1.const char *name1 = "Levitt";//正确 2.char *name2 = "Levitt";//报错 3.char name3[] ="Levitt";//正确 对于这种现象,我百思不得其解,后来
请教
了我们班的著名大佬老陈。最后得出了结论(当然也有可能结论有错,望广大网友指正) ...
C++ 语言
64,654
社区成员
250,484
社区内容
发帖
与我相关
我的任务
C++ 语言
C++ 语言相关问题讨论,技术干货分享,前沿动态等
复制链接
扫一扫
分享
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++
技术论坛(原bbs)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
请不要发布与C++技术无关的贴子
请不要发布与技术无关的招聘、广告的帖子
请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下
试试用AI创作助手写篇文章吧
+ 用AI写文章