尝试在 class 定义中声明数组时出错
Errors trying to declare array in class definition
在过去的一个小时里,我一直试图让这个 class 拥有一个私有数组数据成员,但它拒绝工作。我不想用
数组[5] 映射数组;
因为那时我没有得到数组成员函数。
这是我目前使用的代码。
#include "stdafx.h"
#include <iostream>
#include <array>
#include <fstream>
class Map {
public:
void scanFile();
private:
size_t columns = 20;
size_t rows = 20;
array <int, 5> mapArray;
};
int main() {
Map myMap;
}
下面是我在 Visual Studio.
中遇到的一些示例错误
1>x:\aerofs\gt\ece 2036\lab03\map.cpp(12): error C2143: syntax error : missing ';' before '<'
1>x:\aerofs\gt\ece 2036\lab03\map.cpp(12): error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
1>x:\aerofs\gt\ece 2036\lab03\map.cpp(12): error C2238: unexpected token(s) preceding ';'
你有编译错误。这是因为数组是在命名空间 std 中定义的。要么添加
using namespace std;
在您的文件顶部或在您使用其中定义的任何类型之前添加 std::
:
std::array< int, 5> mapArray;
后者是首选,因为您不必为了使用它的 array
类型而从标准库中获取所有符号。
标准 STL 类,包括 std::array
,是 std::
命名空间 .
的一部分
因此,您只需将 std::
命名空间限定符添加到 array
数据成员即可:
std::array<int, 5> mapArray;
在过去的一个小时里,我一直试图让这个 class 拥有一个私有数组数据成员,但它拒绝工作。我不想用 数组[5] 映射数组; 因为那时我没有得到数组成员函数。
这是我目前使用的代码。
#include "stdafx.h"
#include <iostream>
#include <array>
#include <fstream>
class Map {
public:
void scanFile();
private:
size_t columns = 20;
size_t rows = 20;
array <int, 5> mapArray;
};
int main() {
Map myMap;
}
下面是我在 Visual Studio.
中遇到的一些示例错误1>x:\aerofs\gt\ece 2036\lab03\map.cpp(12): error C2143: syntax error : missing ';' before '<'
1>x:\aerofs\gt\ece 2036\lab03\map.cpp(12): error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
1>x:\aerofs\gt\ece 2036\lab03\map.cpp(12): error C2238: unexpected token(s) preceding ';'
你有编译错误。这是因为数组是在命名空间 std 中定义的。要么添加
using namespace std;
在您的文件顶部或在您使用其中定义的任何类型之前添加 std::
:
std::array< int, 5> mapArray;
后者是首选,因为您不必为了使用它的 array
类型而从标准库中获取所有符号。
标准 STL 类,包括 std::array
,是 std::
命名空间 .
因此,您只需将 std::
命名空间限定符添加到 array
数据成员即可:
std::array<int, 5> mapArray;