gpt4 book ai didi

c++ - 标准库对象作为返回类型和函数参数

转载 作者:行者123 更新时间:2023-11-28 03:29:41 25 4
gpt4 key购买 nike

我是 C++ 的新手,头文件定义类的想法对我来说很陌生。我有一个 Polynomial 类的以下头文件,它给我带来了很多错误。

#ifndef POLYNOMIAL_H
#define POLYNOMIAL_H

class Polynomial {
public:
Polynomial(std::vector <int>&);
Polynomial(const Polynomial& orig);
virtual ~Polynomial();

std::vector <int> getCoeffs();
Polynomial getIntegral(int, int, int);
Polynomial getDerivative(int);
std::string toString();

void integrate(int, int);
void derive();
private:
std::vector<int> coeffs;
};

#endif /* POLYNOMIAL_H */

所有在其返回类型定义中包含来自标准库的内容的类方法都会给我错误:命名空间“std”中的“vector”(或“string”)未命名类型

此外,将 vector 作为参数的构造函数会给出错误:在“<”标记之前应为“)”。

我敢肯定这是非常明显的事情,但无论我完成的教程是什么,都没有深入到类和类定义中以遇到这样的示例。

最佳答案

std::vector在 header vector 中定义。您需要添加声明

#include <vector>

在头文件的顶部。这会导致预处理器(有效地)粘贴该文件的内容来代替 #include。陈述。因此编译器知道类型 std::vector 是什么在您的类定义中引用。

同样适用于std::string ,这又在 header string 中定义。所以添加 #include <string>对于那个标题。

cppreference.com是搜索类型及其各自标题的很好引用;它也是 C++ 的一般在线引用。

你的头文件应该是这样的:

#ifndef POLYNOMIAL_H
#define POLYNOMIAL_H

#include <string>
#include <vector>

class Polynomial {
...
};

#endif /* POLYNOMIAL_H */

关于c++ - 标准库对象作为返回类型和函数参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12926999/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com