C++数组编译时错误

C++ Arrays Compile Time Error

本文关键字:编译时错误 数组 C++      更新时间:2023-10-16

我正在做一个C++项目。我在使用Java后自学C++。代码:

#include <iostream>
#include <string>
using namespace std;
class dayType
{
private:
    string day;
    string week[] = {"Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday", "Sunday"};

public:
    dayType()
    {
        day = "Monday";
        dayID = 0;
    }
};

还有更多的公共活动,但我把它们排除在外,因为它们在这里并不重要。数组上存在编译时错误。它表示"无法解析标识符:周"、"意外令牌:{"answers"意外令牌:}"。有人能解释为什么会发生这种情况吗?如果我将其声明为"string-week[7];",然后在函数中定义实际值,它可以正常工作,但这很痛苦。

据我所知,这在C++中是不可能的。你到底想干什么?OOP在C++中不会像在Java或C#中那样强加给你。

还要注意,函数的名称与类名不同。这意味着省略返回类型将导致编译器错误[感谢Aditya Kumar指出它不会导致无效返回类型]

您正在寻找的C++特性是"静态类成员"。语法如下:

#include <iostream>
#include <string>
using namespace std;
class dayType
{
private:
    string day;
    static string week[];
public:
    void Project113()
    {
        day = "Monday";
        dayID = 0;
    }
};

// Note that if the class definition is in a .H file, the following line should
// appear in exactly one .CPP file.
string dayType::week[] = {"Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday", "Sunday"};