【发布时间】:2020-10-31 05:52:56
【问题描述】:
所以,我遇到了这个问题。 基本上,我创建了一个包含字符串的类,然后创建了一个函数,该函数创建了一个包含该字符串的类的数组,我想将它返回给 main() 但只返回 wordBank[];不起作用。 有人可以向我解释为什么我的代码不起作用以及我需要做什么才能让它起作用吗?对不起,我是 C++ 的新手。谢谢,代码如下:
#include <iostream>
#include <fstream>
using namespace std;
// wordlist object
class wordList {
public:
string word;
};
// function that is supposed to fill my wordList class object with words
wordList* readWordList() {
wordList wordBank[3];
string wlist = "wordlist.txt";
ifstream data(wlist);
while (!data.eof()) {
for (int i = 0;i < 3;i++) {
data >> wordBank[i].word;
}
}
data.close();
return wordBank;
}
//main function
int main()
{
wordList wordBank[2];
wordBank = *readWordList() ; // ?
std::cout << wordBank[2].word;
}
【问题讨论】:
-
您可以使用
std::vector吗? -
使用 std::vector。打开警告(编译器可能会告诉你为什么不能这样做)
-
不要使用
C,而是使用C++。所以改为使用 C 数组std::array或std::vector。 -
wordBank在函数结束时停止存在,就像函数本地的所有其他变量一样。您返回的指针不再特别指向任何东西。
标签: c++