いやー厚い…。なんで9月も中旬過ぎた頃なのに、こんなに暑いんでしょうか…。今でもクーラーを使う日がぼちぼちとあります。もうそろそろ気温が下がってきてほしいんですけどねぇ〜。
さて、先日(昨日かな?)、微妙にハマったコードがあったのでメモ。コード自体には意味は無いですケドね〜。
class A
{
protected:
int Func(){ return 0; }
};
class B : public A
{
public:
int Func2(A* pA)
{
return pA->Func(); // C2248
}
int Func3(B* pB)
{
return pB->Func(); // OK
}
};
main()
{
B b;
B dummy;
dummy.Func2(&b);
dummy.Func3(&b);
return 0;
}
とまぁ、こんな感じで。
最初は「なんで派生クラスから基本クラスのprotectedメンバが呼べないねん!」と思っていましたが、よくよく考えてみると、引数の型が基本クラスをさしているだから、外部からは呼べないじゃん……と。^^;
ん〜、ちょっとワナにはまってしまいました………
…え、こんなところで大ボケかますのは私だけですか?そうですか、そうですか。 orz