Это мой базовый классC++ создать полезный метод в дочернем классе
class Base {
protected:
int number;
public:
Base(int num);
virtual void display() = 0;
};
эти два класса унаследовали базы.
class Derived: public Base {
public:
Derived(int num);
void display(){cout <<"hello";}
void other();
};
class Derived2: public Base {
public:
Derived(int num);
void display(){cout <<"hello other";}
};
этот класс позволяет мне просто инстанцирует мои два класса Derived и Derived2
class Foo{
private:
Base * toto[2];
public:
Foo(){
toto[0] = new Derived;
toto[1] = new Derived2;
}
void doSomething();
}
, и я хочу сделать это
void Foo::doSomething(){
toto[0]->other();
}
$$$$$$$$$$ $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ $ $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ $$$$$$$$$$$$$
последнего вопроса я создаю новый класс унаследовал Derived2
и Base
class Derived3: public Derived2, public Base {
public:
Derived(int num);
void display(){cout <<"hello";}
void other();
};
теперь я хочу, чтобы это сделать
toto[0] = new Derived3
This my error message
неоднозначного преобразование из производного класса Derived3 'до базового класса «Base»: класса Derived3 -> класс База класс Derived3 -> класс Derived2 -> класс Base
Назначение «Base» из несовместимого типа «Derived3 *»
Возникли вопросы здесь? – Brian
Я хочу назвать свой метод другим в классе Derived – Darkness007