[从类模板(例如,对)派生一个类时,似乎我们需要包括iostream:
此代码有效:
#include <iostream>
class Vector: public std::pair<double,double> {
public:
Vector() {}
Vector(double a, double b): std::pair<double,double> (a,b) {}
};
int main
{
return 0;
}
但是如果我们忽略#include <iostream>
,它甚至不会编译:5 error: expected template-name before '<' token
这种继承需要iostream
的什么功能?
这种继承需要iostream的什么功能?
无功能。只是在您的系统上,iostream
可能包含utility
标头,其中定义了utility
。这意味着您可以传递正确的标头。标准标头允许彼此包含作为实现细节,但这不是可移植的依赖。
您应该避免使用错误的标题,而恰恰是正确的标题,而应该使用正确的标题。