いろきゅうの(元)はてなダイアリー

はてなダイアリーから移行中…

微妙な感じ。

いやー厚い…。なんで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