這裏是我的代碼 -繼承和靜態變量
#include <iostream>
#include <conio.h>
using namespace std;
class Base
{
public:
int a;
};
//int Base::a = 5;
class Derived : public Base
{
public:
int static a;
};
int main()
{
Derived d;
cout<<d.a;
getch();
return 0;
}
我在這裏得到一個連接錯誤。但當我這樣做時,相反 -
class Base
{
public:
int static a;
};
int Base::a = 5;
class Derived : public Base
{
public:
int a;
};
我沒有得到任何錯誤。有人能解釋一下這裏發生了什麼嗎?
沒有答案,但爲什麼你的事件想要2個對象相同的變量名。只是添加混淆(即使對鏈接器) – RvdK 2010-05-20 07:03:12
@PoweRoy:鏈接器不會在意 - 它使用裝飾名稱。 – sharptooth 2010-05-20 07:04:10
@PoweRoy:沒有理由只是修修補補周圍 – Bruce 2010-05-20 07:07:11