gpt4 book ai didi

arrays - 无法访问私有(private)阵列

转载 作者:行者123 更新时间:2023-12-01 13:44:48 27 4
gpt4 key购买 nike

我在访问字符串数组时遇到困难。它被声明为私有(private)数组并填充在类的构造函数中。我定义了一个 Get 函数。问题是当我在编译时调用此函数时出现错误,提示我无法访问在类中声明的私有(private)成员。我只是重新开始为 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;
}

最佳答案

构造函数是私有(private)的,因为默认情况下类的所有成员都是私有(private)的。只需将其移至公共(public)部分即可。

关于arrays - 无法访问私有(private)阵列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36808193/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com