C++ 具有多个继承模板的成员函数
我将公开派生类模板'Area'的两个实例,一个int,另一个char到一个单独的类'Rectangle'中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> { };
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;