gpt4 book ai didi

c++ - 3个错误: error: 'Entry' was not declared in this scope. error: template argument 1 is invalid. error: invalid type in declaration before '(' token

转载 作者:行者123 更新时间:2023-12-02 11:03:06 26 4
gpt4 key购买 nike

菜鸟在这里,对不起,标题错误。

我正在尝试从Bjarne Stroustrup的“C++编程语言”编译这段代码,但是CodeBlocks不断抛出此错误。

该代码是关于范围检查 vector 函数中保存的数组的。

#include <iostream>
#include <vector>
#include <array>

using namespace std;

int i = 1000;

template<class T> class Vec : public vector<T>
{
public:
Vec() : vector<T>() { }

T& operator[] (int i) {return vector<T>::at(i); }
const T& operator[] (int i) const {return vector<T>::at(i); }
//The at() operation is a vector subscript operation
//that throws an exception of type out_of_range
//if its argument is out of the vector's range.
};

Vec<Entry> phone_book(1000); //this line is giving me trouble

int main()
{

return 0;
}

这给了我这些错误:
  • 错误:在此范围内未声明“Entry”。
  • 错误:模板参数1无效。
  • 错误:'(' token 之前的声明中的类型无效。

  • 我必须改变什么?我如何申报Vec入境?

    最佳答案

    老实说,我怀疑您是直接从Bjarne复制了这段代码。但是,问题恰恰是错误所说的:未声明Entry
    如果您只是想玩这个例子,可以尝试例如

    Vec<int> 

    代替。但是,还有另一个小问题(这使我相信您更改了Bjarnes代码):您的类 Vec没有采用 int的构造函数,因此
    Vec<int> phone_book(1000); 

    无法工作。只需提供此构造函数:
    Vec(int size) : vector<T>(size) {}

    它应该工作。

    关于c++ - 3个错误: error: 'Entry' was not declared in this scope. error: template argument 1 is invalid. error: invalid type in declaration before '(' token,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29394174/

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