C++数组编译时错误
C++ Arrays Compile Time Error
我正在做一个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"};
相关文章:
- 讨论 - 创建矩阵时的数组与向量的向量 - 什么是最实用的选择
- 在缺少函数重载时抛出异常,并带有 std::variant 而不是编译时错误
- 如何在C++初始化时更改数组的值?
- 从函数中全局删除并重新实例化数组结构,而无需在编译时知道数组的大小
- 运行时C++数组初始化问题
- 如何在常量计算表达式中获取编译时错误?
- 如何防止每次 Arduino 启动时颜色数组都是相同的随机数组
- C++根据调用的构造函数强制编译时错误
- 对编译时 C 数组的严格别名和引用
- 在编译时使用数组中的字符串制作杂注
- 在哪种情况下,C++会在编译时进行数组边界检查?
- 编译类型的时静态数组
- 运行时和编译时的数组声明
- 如果将数组名称视为指针,为什么在递增数组时会出现Lvalue所需的编译时错误
- C++数组编译时错误
- 检查 C 样式数组是否等于其他(编译时)数组
- 是否可以在编译时评估数组
- 编译时静态数组的元素总和
- 编译错误 - 数组下标'char[int]'的类型无效
- 当数组作为参数传递给构造函数时,数组元素出现逻辑错误