试图在类定义中声明数组的错误

时间:2015-02-21 19:18:36

标签: c++ arrays class initialization

我一直试图让这个类在过去一小时内拥有一个私有数组数据成员,但是它拒绝工作。我不想用     array [5] mapArray; 因为那时我没有得到数组成员函数。

这是我目前正在使用的代码。

#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 ';'

2 个答案:

答案 0 :(得分:1)

您遇到了编译错误。这是因为数组是在命名空间std中定义的。要么添加

using namespace std;

位于文件顶部或在使用其中定义的任何类型之前添加std::

std::array< int, 5> mapArray;

后者是首选,因为您不必使用标准库中的所有符号来使用它array类型。

答案 1 :(得分:1)

标准STL课程(包括std::array)是 std::命名空间的一部分。

因此,您只需将std::命名空间限定符添加到array数据成员:

std::array<int, 5> mapArray;