gpt4 book ai didi

c++ - ERROR : list does not name a type (C++). 我不这么认为?

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

因此,我一直在构建一个我发现的 float 类的小示例,以便为将来的一些 C++ 编码作业做好更好的准备。尝试编译这段代码时出现错误:“classExample.cpp:12:2: error: 'list' does not name a type”。

唯一的问题是,我绝对将其类型指定为 Rectangle*,正如您在下面的代码中看到的那样。我做错了什么?

// classes example
#include <iostream>
#include <stdlib.h>
#include <string>
#include <sstream>

using namespace std;

class setOfRectangles {
list<Rectangle*> rectangles;
};

class Rectangle {
int width, height; //class variables

public: //method constructors
Rectangle(){width = 0; //constructor for rectangle
height = 0;}
Rectangle(int i, int j){width = i; height=j;}
void set_values (int,int);
string toString();
int area() {return width*height;}
int perimeter(){return (2*width)+(2*height);}
};

void Rectangle::set_values (int x, int y) { //fleshing out class method
width = x;
height = y;
}

string Rectangle::toString()
{
/*
Prints information of Rectangle
Demonstrates int to string conversion (it's a bitch)
*/

std::stringstream sstm; //declare a new string stream

sstm << "Width = ";
sstm << width;

sstm << "\n";

sstm << "Height = ";
sstm << height;

sstm << "\n";

sstm << "Perimeter = ";
sstm << perimeter();

sstm << "\n";

return sstm.str(); //return the stream's string instance
}

int main (int argc, char* argv[]) {
if(argc != 3)
{
cout << "Program usage: rectangle <width> <height> \n";
return 1;
}
else
{
Rectangle rect = Rectangle(2,3); //new instance, rectangle is 0x0
cout << "area: " << rect.area() << "\n";
cout << rect.toString() << endl;

//call this method
rect.set_values (atoi(argv[1]),atoi(argv[2]));

cout << "area: " << rect.area() << "\n";
cout << rect.toString() << endl;
return 0;
}
}

最佳答案

您需要为 list 添加正确的 header : #include <list>

此外,为什么要包括 C header <stdlib.h>在 C++ 应用程序中?是atoi吗?如果是这样,您应该研究如何以正确的方式在 C++ 中进行强制转换。或者包括 <cstdlib>相反(这是同一 header 的 C++ 版本)。

另外,你需要移动这个:

class setOfRectangles {
list<Rectangle*> rectangles;
};

在声明class Rectangle之后,否则编译器将不知道 Rectangle 是什么。

关于c++ - ERROR : list does not name a type (C++). 我不这么认为?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22569010/

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