CDialog 对象怎么不能赋值?

来源:百度知道 编辑:UC知道 时间:2024/07/05 03:34:14
我声明一个CDialog 对象dlg1,dlg2,为什么dlg1=dlg2会出现错误?
但是=操作符可以默认的啊,好像编译器可以提供的吧。。对象好像时可以赋值的吧?对象和赋值好像没什么联系吧,冲突么?

楼上两位有点强词夺理了!~
实际原因是:
CDialog继承自CWnd,CWnd继承自CCmdTarget,CCmdTarget继承自CObject,而CObject中,将等号操作符重载给设置成为私有的,因此外界是不可以去使用的!~

楼主说的也对,不继承自任何类的类类型中,等号操作符是被默认给出的,但只完成了一些简单成员的复制。

搞清楚什么是对象 什么是赋值

对象不能直接赋值,对象的成员属性才可以赋值

示例:

创建对象 -> 狗
创建对象 -> 人

按你的意思就是 狗=人 明显错误!

但是属性是可以赋值的

如:

狗.体重 = 人.体重 / 3

这样是可以的.你自己好好理解.!

完全错误,因为它没有实现等于操作符重载。
还有,对话框属于窗口对象,必须拥有自己的窗口句柄。两个对话框都具有相同的窗口句柄,那意味着什么?莫名其妙,不知你究竟要做什么?

对象之间要赋值需要实现“拷贝构造函数”。也就是在拷贝构造函数中定义赋值过程中应如何复制内部属性。

我不是说对象之间用=号赋值不可能,只是对话框对象之间赋值有些难以理解其必要性。

我很想帮你但你所写的我看不懂.....