【发布时间】:2013-04-02 13:07:23
【问题描述】:
我有一个名为Number 的基类。 One 和 Two 类派生自 Number。
现在我定义了另一个类Three,我需要从多重继承中访问各个基类:
class Number{
protected:
int val;
public:
Number(){
val=0;
}
void Add(Number n){//Receives another Number class instance and add the value
val+=n.val;
}
};
//class One derived from Number
class One:public Number{
public:
One(){
cal=1;
}
};
//class two derived from Number
class Two:public Number{
public:
Two(){
val=2;
}
};
class Three:public One,public Two{
public:
Three(){
Two::Add(One);//--How can i pass instance of class One Here
}
};
我试过 One::Number 和 Two::Number,但没有用。
【问题讨论】:
-
Add(One),One不是您的类的实例,而是类型本身。您需要一个One类型的变量。
标签: c++ multiple-inheritance diamond-problem