我目前正在研究一個C++項目,其中我有一個稍後實現的抽象接口。該接口也有一個實現的方法,我的實現不會覆蓋。 我的問題是,當使用我的實現時,編譯器(MSVC)沒有看到接口方法。是什麼導致了這種情況,我該如何解決它? 代碼如下。 #include <string>
#include <vector>
using std::string;
class A
{
public:
我試圖在保留現有功能的同時重構一些代碼。我無法將指向對象的指針轉換爲基礎接口,然後再派生派生類。在某些情況下,該程序使用工廠對象來創建這些對象的實例。 以下是我正在使用的類的一些示例。 // This is the one I'm working with now that is causing all the trouble.
// Some, but not all methods in N
有沒有辦法++定義一個類Foo用C 使 我可以從它 我不能「鑽石繼承」從它 繼承 Ie class Cat: public Foo{} // okay
class Dog: public Foo{} // okay
class Weird: public Cat, public Dog {} // I want this to throw a compiler error
class A { public: void eat(){ cout<<"A";} };
class B: virtual public A { public: void eat(){ cout<<"B";} };
class C: virtual public A { public: void eat(){ cout<<"C";} };
class D: public B,C