我找不到任何類似的問題和我的谷歌搜索技能,所以希望SO能提供幫助。 (下面的示例頭部僞代碼)C++模板繼承
namespace randomNamespace{
template <typename A, typename B>
class Shape{
public:
Shape(int);
~Shape();
bool insert(std::pair<A,B> ab);
private:
std::vector<std::pair<A,B> > someListOfPairs;
};
}
class Square : public Shape<string, string> //causes error requiring template before '<'
{
public:
Square(int); //When defined it is Square(int x) : Shape(x); as an initialization list to call superclass constructor
~Square();
bool insert(std::pair<string, string> p);
private:
//Shape<string, string> someShape -- see question #3
};
1)什麼是繼承模板的泛型基類的正確語法?
2)Class Square是否可以訪問someListOfPairs(而不是說它是私有的),比如當我調用Square的insert(字符串對)時,它會調用Shape的insert(通用類型對)? (這又是如何實現的?)
3)我是否必須定義一個Shape someShape對象來正確使用Shape類成員,即使它已經在使用繼承?
當心:'廣場:: insert' *揣*'形狀<字符串,字符串>: :insert'。 – aschepler
我怎樣才能調用形狀 ::插入Square的插入沒有專用對象聲明的類型形狀? (問題#2) – sl133