从类模板继承所需的iostream

问题描述 投票:0回答:1

[从类模板(例如,对)派生一个类时,似乎我们需要包括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的什么功能?

c++ class inheritance iostream
1个回答
0
投票

这种继承需要iostream的什么功能?

无功能。只是在您的系统上,iostream可能包含utility标头,其中定义了utility。这意味着您可以传递正确的标头。标准标头允许彼此包含作为实现细节,但这不是可移植的依赖。

您应该避免使用错误的标题,而恰恰是正确的标题,而应该使用正确的标题。

© www.soinside.com 2019 - 2024. All rights reserved.