我有一個鑽石的問題看起來是這樣的: __ A
/ |\
| B | \
v|/v v\|v \v
B2 B3 C
\v /v /
B4 /
\ /
D
我試過很多方法,使最佳的虛擬繼承得到沒有重複,但我無法找到一個解決方案。 A類包含一個位置。下面是一個輸出示例: Call: A() position pointer is: 0x2203be8
C
可能重複: How do you declare an interface in C++? Interface as in java in c++? 我是一個Java程序員學習C++,我想知道是否有類似的東西在C++ Java接口,即類,其他類可以實現/擴展多個。 謝謝。 p.s.告訴我,如果我做錯了什麼,請在這裏新建一個。
class IA
{
public:
virtual void a() = 0;
};
class A: virtual public IA
{
public:
virtual void a()
{
}
};
class IB: virtual public IA
{
public:
virtual void b() = 0
雖然與繼承玩耍,正好試試這個: class A
{ int i; };
class B : virtual public A
{ int j; };
class C : public B
{ int k; };
int main()
{
std::cout<<sizeof(C)/sizeof(int);
return 0;
}
這給了我輸出6 雖然下面