如何将值存储在我的类私有数组中?C++11.
How can I store values in my class private array? c++11
我有看起来像这样的东西
class RestaurantCheck
{
private:
static const int MENU_LENGTH = 10;
static const string menu[MENU_LENGTH] = {"Gumbo", "Shrimp", etc...}
马上,我有一个问题。我知道我不能像现在这样初始化数组中的数据,所以我尝试了这个......
class RestaurantCheck
{
private:
static const int MENU_LENGTH = 10;
static const string menu[MENU_LENGTH];
void displayMenu();
public:
void showMenu()
{
RestaurantCheck thisMenu;
thisMenu.displayMenu();
}
void RestaurantCheck::displaymenu()
{
menu[0] = "Shrimp"
menu[1] = "Gumbo"
etc...
cout << menu[0]
etc...
但是,我也无法像那样将数据存储在数组中。我到底应该如何在这个数组中存储数据?作为赋值的一部分,数组必须是 const 静态的,它必须是私有的,displayMenu 也必须是私有的,由公共函数调用。
我希望我得到的是清楚的,如果没有,我会尝试提供更多信息。
编辑:我无法编辑教师源文件中的任何内容。源文件已经创建,他将使用自己的(提供的)来测试我的类文件和头文件。因此,它需要在源文件之外启动。
你和
之前的许多人一样陷入了同样的陷阱。你的数组是 const 的,所以它在声明时必须初始化。但是你不能在类主体中初始化静态字符串数组。你是做什么工作的?你在外面初始化它!
喜欢这个:
在您的 .h 文件中:
static const std::string menu[10];
在.cpp文件中:
const std::string RestaurantCheck::menu[10] = {"Shrimp", "Calamari", "Listeria"};
这是你要找的吗?
您可以初始化静态非标量成员,但这必须在类外部完成:
#include <string>
class RestaurantCheck{
static const int MENU_LENGTH = 3;
static const std::string menu[MENU_LENGTH];
};
const std::string RestaurantCheck::menu[RestaurantCheck::MENU_LENGTH] = {"Gumbo", "Shrimp", "Jar" };
注意 "init 行"必须只存在于一个文件中,最好的位置是编译为 Object 的.cpp文件。我的意思是:
restaurantcheck.h - RestaurantCheck header
restaurantcheck.cpp - RestaurantCheck implementation (best place for "init line")
main.cpp - program (where main() is located)
相关文章:
- 继承:构造函数,初始化C++11中基类的类C数组成员
- 在编译时解压缩数组扩展数据块 (C++11/14)
- 如何在 Visual Studio C++ 11 中运行时定义二维数组?
- 是否可以在 64 位系统中为 11 位系统中的图形创建位邻接数组
- 如何按降序对标准数组进行排序 - C++ 11.
- 如何在 C++11 中创建具有命令行参数大小的动态数组?
- 如何将元组转换为C 11中的字节数组
- 为什么编译器在试图初始化具有C 11样式的对象数组时隐含删除构造函数
- 根据 C++11 中的模板参数选择数组大小
- 初始化枚举类 (C++11) 类型的二维 std::数组
- 固定大小和零启动数组作为C 11中的默认参数
- 静态数组溢出堆栈(seg 错误 11)仅在类定义内部时,否则不会..?
- 在 C++11 中将静态 constexpr 数组转换为模板参数
- c 11类型的std ::带有操作员的数组
- 使用C 11将数组设置为零
- 不能和正确的方法来声明类成员 c++11 中的 int 数组数组
- 无法在 c++ 中声明动态整数数组,可能是 c++11 错误
- Node-ffi 绑定到 NULL 终止的 C 字符串数组,但得到“分段错误:11”
- 最语义正确和类型安全的构造从序列化字节数组?(c++ 11)
- 直方图函数使用动态数组c++ 11