中易网

讲一个对象的实例赋值给另一个对象,赋值操作符的重载该怎么写?

答案:2  悬赏:10  
解决时间 2021-03-17 23:11
假设有类class A;class B;
A a;
B b;
a=b;
这个里面的=应该如何重载?
源代码如下:
#include
#include "board.h"
#include "smart.h"
#include "dumb.h"
#include "human.h"
#include "game.h"
using namespace std;
// main program to test game object

int main(void)
{
game g;
smart s1(1),s2(2);
dumb d1(1),d2(2);
human h1(1),h2(2);
char s[100];
player *p1,*p2;

cout << "Player 1 ? (h,s or d)";
cin >> s;
switch(s[0])
{
case 'h' : p1 = &h1; break;
case 's' : p1 = &s1; break;
case 'd' : p1 = &d1; break;
default :
p1 = &h1;
}

cout << "Player 2 ? (h,s or d)";
cin >> s;
switch(s[0])
{
case 'h' : p2 = &h2; break;
case 's' : p2 = &s2; break;
case 'd' : p2 = &d2; break;
default :
p2 = &h2;
}
int result=g.play(p1,p2);

if (result==1)
{
cout << "Player 1 has won." << endl;
}
else if (result==2)
{
cout << "Player 2 has won." << endl;
}
else
{
cout << "Tie game." << endl;
}

return(0);
}

我得player类中的赋值操作符是这样重载的
player player::operator = (const human *h)
{
this ->kind = h ->kind;
return *this;
}

player player::operator = (const smart *s)
{
this ->kind = s ->kind;
return *this;
}

player player::operator = (const dumb *d)
{
this ->kind = d ->kind;
return *this;
}
可是运行的时候依然报错
最佳答案
只能成员重载,在类体内实现的框架:
A &operator = (const B &b)
{
// 成员的赋值操作
return *this;
}

当然,如果已经有这样的构造函数:A(const B&b); 并且不是深拷贝,就不用重载=运算符了,编译程序会自动调用该构造函数生成一个A类无名对象给对象a赋值
全部回答
1.算术运算符 用于各类数值运算。包括加(+)、减(-)、乘(*)、除(/)、求余(或称模运算,%)、自增(++)、自减(--)共七种。 2.关系运算符 用于比较运算。包括大于(>)、小于(<)、等于(==)、 大于等于(>=)、小于等于(<=)和不等于(!=)六种。 3.逻辑运算符 用于逻辑运算。包括与(&&)、或(||)、非(!)三种。 4.位操作运算符 参与运算的量,按二进制位进行运算。包括位与(&)、位或(|)、位非(~)、位异或(^)、左移(<<)、右移(>>)六种。 5.赋值运算符 用于赋值运算,分为简单赋值(=)、复合算术赋值(+=,-=,*=,/=,%=)和复合位运算赋值(&=,|=,^=,>>=,<<=)三类共十一种。 6.条件运算符 这是一个三目运算符,用于条件求值(?:)。 7.逗号运算符 用于把若干表达式组合成一个表达式(,)。 8.指针运算符 用于取内容(*)和取地址(&)二种运算。 9.求字节数运算符 用于计算数据类型所占的字节数(sizeof)。 10.特殊运算符 有括号(),下标[],成员(→,.)等几种。 希望 对你有用哈
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
看图猜成语一串糖葫芦四个双喜
河南郑州景之淘公司加盟网店是真的还是骗人的
教师资格证笔试在泉州考的,面试是兰州,最后申
现在的ps1模拟器能用金手指吗
北京嘉园小区到朝阳工人体育馆北路十三号院坐
汝阳县鼎鑫科技有限公司我想知道这个在什么地
爱婴岛儿童百货地址好找么,我有些事要过去
有没有好看的网络小说
冷兵器 抛光
什么种类的花最好种
碗莲种子总是吐泡泡是怎么回事
为什么天天酷跑玩着玩着就闪退了
北辰刘快庄村什么时候拆迁
男生如何瘦大腿上的肌肉
贴在门背后的驱鬼的画符拿掉有什么讲究
推荐资讯
海陵固铂轮胎经营部在什么地方啊,我要过去处
microsoft无线鼠标怎么连接电脑
老人嗜睡是怎么回事老人嗜睡怎么办
奔跑吧第五季10期有哪些背景音乐
求酒店龙年年会主题!
新天地汽车城怎么去啊,有事要去办理
初中毕业后该有怎样的学习计划呢?
数据库中如何按电话号码升序的顺序显示学生表
谁能告诉我广州自考一年考几次呀!!!
怀孕40天了,能吃创盈金斯利安多维片吗,
感冒了老咳嗽吐痰,看医生老爱问吐的是黄痰还
为什么想进辉瑞怎么回答好呢?具体帮忙说一下
手机登qq时,显示手机磁盘不足,清理后重新登
刺客的套装怎么选啊?