14.5.2 - Member templates [temp.mem] -2- より引用。 Note: because the explicit template argument list follows the function template name, and because conversion member function templates and constructor member function templates are called without using a function name, there is no way to provide an explicit template argument list for these function templates.
class Vector { // 基底クラス(ベ−スクラスとも言う) int x,y ; // 座標値のみをもっているクラス public: Vector( int a,int b ) { x = a ; y = b ; } int get_x() { return x ; } } ;
class Point: public Vector { // 派生クラス(導出クラスとも言う) int color ; public: // デフォルトの色は9 Point( int a,int b,int cc=9 ):Vector( a,b ) { color = cc ; } int get_color() { return color ; } } ;
E:\Project\Test67\Main.cpp(18) : error C2440: 'return' : 'const class std::vector<class Record *,class std::allocator<class Record *> >' から 'const class std::vector<class Record const *,class std::allocator<class Record const *> > &' に変換することはできません。(新しい動作 ; ヘルプを参照)
理由: 'const class std::vector<class Record *,class std::allocator<class Record *> >' から 'const class std::vector<class Record const *,class std::allocator<class Record const *> >' へは変換できません。