Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/templates/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 具有多个继承模板的成员函数_C++_Templates - Fatal编程技术网

C++ 具有多个继承模板的成员函数

C++ 具有多个继承模板的成员函数,c++,templates,C++,Templates,我将公开派生类模板'Area'的两个实例,一个int,另一个char到一个单独的类'Rectangle'中 template<class T> class Area { public: T a; T getArea() { return a; } void setArea(T t) { a = t; } }; class Rectangle : public Area<int>, public Area<char> { };

我将公开派生类模板'Area'的两个实例,一个int,另一个char到一个单独的类'Rectangle'中

template<class T>
class Area {
  public:
    T a;
    T getArea() { return a; }
    void setArea(T t) { a = t; }
};  

class Rectangle : public Area<int>, public Area<char> {
};  

int main() {
  Rectangle a;
  a.setArea(1);
  std::cout << a.getArea() << std::endl;
  Rectangle b;
  b.setArea('c');
  std::cout << b.getArea() << std::endl;
}   
模板
班级面积{
公众:
Tα;
T getArea(){返回a;}
void setArea(T){a=T;}
};  
类矩形:公共区域,公共区域{
};  
int main(){
矩形a;
a、 设置区(1);

std::cout如果使用
语句将两个基类中的名称
setArea
带到派生类中:

class Rectangle : public Area<int>, public Area<char> {
  using Area<int>::setArea;
  using Area<char>::setArea;
};  

看到这个问题:@AzamBham我已经试过使用语句了。那不起作用。使用语句放在哪里?编译器无法自动推断你要调用哪个版本的
a.getArea()
。尝试帮助它:
std::cout@MihaiTodor,谢谢你回来。我也试过了,但它也不起作用。对我有用:
std::cout << a.Area<int>::getArea() << std::endl;