vc 6のprivate static変数が派生クラスにアクセスできる可能性のある問題
今日ある工事のコードでrtが述べた情況を何気なく見て、簡単なテストプログラムを書いてテストして、vc 6特有のこの問題であるべきだと発見しました
Bのクラスメソッドではprintf("%d",A::s_nData 2);
この文は、vc 6だけがコンパイルでき、vs 2008/DevC++はprivateがアクセスできないことを示すので、できるだけ書かないでください.
#include <cstdio>
class A
{
public:
A() {
m_nData1 = 1;
}
private:
int m_nData1;
static int s_nData2;
};
int A::s_nData2 = 2;
class B : public A
{
public:
void TestVisit(void)
{
// printf("%d
", A::m_nData1);
// printf("%d
", s_nData2);
printf("%d
", A::s_nData2);
}
};
int main()
{
B objB;
objB.TestVisit();
// printf("%d
", A::s_nData2);
return 0;
}
Bのクラスメソッドではprintf("%d",A::s_nData 2);
この文は、vc 6だけがコンパイルでき、vs 2008/DevC++はprivateがアクセスできないことを示すので、できるだけ書かないでください.