我无法访问字符串数组。它被声明为私有数组并填充该类的构造函数。我定义了一个Get函数。问题是当我在编译时调用此函数时,我收到一个错误,我无法访问类中声明的私有成员。我只是为了yuks重新编码,因此我在舞台前指针和预矢量,所以我试图避免会强迫他们使用的情况。
Words.h
#pragma once
#include <string>
#include <iostream>
#include <array>
class Words {
Words();
public:
std::string GetNewWord(int);
private:
std::string WordList[23] = {};
};
Words.cpp - 数组已完全填充但在此缩短
#include "Words.h"
Words::Words(){
WordList[0] = "omega";
WordList[1] = "minors";
WordList[2] = "stigma";
WordList[3] = "glamor";
WordList[4] = "savior";
WordList[5] = "disarm";
WordList[6] = "isogram";
.
.
.
;
}
std::string Words::GetNewWord(int choice)
{
return WordList[choice];
}
main.cpp - 包含一个无限循环,因此我可以快速测试数组是否已填充
#include <iostream>
#include <string>
#include "Words.h"
Words word;
int main() {
do {
std::cout << "choice: ";
int choice;
std::cin >> choice;
std::cout << "\n" << word.GetNewWord(choice) << "\n";
} while (true);
return 0;
}
答案 0 :(得分:3)
构造函数是私有的,因为默认情况下,类的所有成员都是。只需将其移至公共区域即可。