何故かコンパイルできないプラグラム集です.
どなたか理由が分かる方がいたら,教えてください.
#include <vector>
using namespace std;
class Test : private vector<int>
{
public:
Test(int num)
{
for(int i=0; i<num; i++)
push_back(i);
}
unsigned int Size()
{
return size();
}
};
//エラー
//'size': 識別子は、引数依存の照合を使用しても見つかりません。
vectorコンテナをプライベート継承したのですが,
vectorのpublicなメソッドがサブクラス内のメソッドから呼び出せません^^;
何故? push_backは呼べますね.g++だとコンパイルできます.
include/vectorの中を読んでみました
size_type Size() const
{ // return length of sequence
return (_Myfirst == 0 ? 0 : _Mylast - _Myfirst);
}
sizeメソッドがSizeメソッドになっちゃっています...
sizeに直したら動きました.