[問題] static與class的繼承
遇到的問題: (題意請描述清楚)
我想讓class中的某一個member在各個Instance中共用同一個
所以我在宣告member的時候加上了static,這樣子做確實可以
讓我達到目地,不過問題就出在這個class是一個基底類別,他
必須要被多個class所繼承,而每個子類別中都各自要有一個跟
父類別一樣功能的member,我在實做的時候發現他們繼承之後依
舊都是指向基底類別的static member 後來上網查了一下得知要
在子類別中重新宣告一次同樣的member,雖然可行,不過卻要用
不同的指標去new,可是我想要的結果是像下面的code那樣,而不
是被註解的那行的做法。
開發平台: (例: VC++ or gcc/g++ or Dev-C++, Windows or Linux)
VC++ 2008
有問題的code: (請善用置底文標色功能)
class A
{
public:
static int aa;
};
class B : public A
{
public:
static int aa;
};
int A::aa = 10;
int _tmain(int argc, _TCHAR* argv[])
{
A* a = new A();
A* b = new B();
//B* b = new B();
a->aa = 20;
b->aa = 30;
printf("A=%d\n",a->aa);
printf("B=%d\n",b->aa);
return 0;
}
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 122.117.128.56
推
03/16 22:48, , 1F
03/16 22:48, 1F
→
03/16 22:48, , 2F
03/16 22:48, 2F
推
03/16 22:50, , 3F
03/16 22:50, 3F
→
03/16 22:50, , 4F
03/16 22:50, 4F
→
03/16 23:01, , 5F
03/16 23:01, 5F
→
03/16 23:02, , 6F
03/16 23:02, 6F
→
03/16 23:02, , 7F
03/16 23:02, 7F
推
03/16 23:05, , 8F
03/16 23:05, 8F
→
03/16 23:06, , 9F
03/16 23:06, 9F
→
03/16 23:06, , 10F
03/16 23:06, 10F
→
03/16 23:07, , 11F
03/16 23:07, 11F
→
03/16 23:10, , 12F
03/16 23:10, 12F
→
03/16 23:11, , 13F
03/16 23:11, 13F
→
03/16 23:12, , 14F
03/16 23:12, 14F
推
03/17 00:40, , 15F
03/17 00:40, 15F