首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

重载new的有关问题

2012-02-13 
重载new的问题classC:publicA,publicB//A和B都重载了new...main(){newC//二义性错误,怎么改这里?}-------

重载new的问题
class   C:   public   A,   public   B   //   A和B都重载了new
...
main()
{
        new   C;   //   二义性错误,怎么改这里?
}
----------------
有没有A::new之类的语法?

[解决办法]
既然A/B都重载了new,C当然更加要重载new。
不要挑战编译器或者自己的大脑。
[解决办法]
试试看。
A* ap;
C* cp
ap = new C;
然后再转换 ap为cp;
看看这样调用的是否是A里面的new、
[解决办法]
修改 C
class C: public A,B
{
public:
A::operator new;
protected:
private:
};

之后 C的new就使用的是A的new
[解决办法]
既然两个父类都重载了new,那么这个子类如果不重载的话,你觉得你这个子类符合LSP原则的可能有多大?
[解决办法]
我记得学C++的书里有解决二义性的例子的。不过现在忘得怎么做了。
[解决办法]
你的子类再重载一下operator new,实现应该实现的正确操作,然后就不会出现二义性了啊
[解决办法]
多态哇
[解决办法]
:)

热点排行