【发布时间】:2014-05-20 06:16:38
【问题描述】:
所以,我以为我正在尝试做一些简单的事情,但显然不是......
我编写了这个函数,以便以后可以扩展它,并且可以在需要时通过 menu(mystrings) 快速为用户提供菜单:
int menu(string a[]) {
int choice(0);
cout << "Make a selection" << endl;
for(int i=0; i<a.size(); i++) {
cout << i << ") " << a[i] << endl;
}
cin >> choice;
cout << endl;
return choice;
}
但由于某种原因,我得到了:
main.cpp: In function ‘int menu(std::string*)’:
main.cpp:38:12: error: request for member ‘size’ in ‘a’, which is of pointer type ‘std::string* {aka std::basic_string<char>*}’ (maybe you meant to use ‘->’ ?)
int n = a.size();
当我尝试编译时。谁能帮我翻译一下这个错误并解释->是什么,谢谢。
【问题讨论】:
-
数组不是类。他们没有成员函数。根据您的需要使用
std::array或std::vector。 -
我猜你在做
using namespace std;。 -
所有反对票是怎么回事?这并不清楚,也不一定是缺乏努力/研究;这是关于 C++ 最尴尬的事情之一。
-
@T.J.Crowder 非常感谢,我也想知道我做错了什么,是否有人反对请让我知道我将来如何改进我的问题?当我没有要求指针时,我对错误说我有一个指针感到非常困惑。
-
代码中的
string a[]是syntax quirk,代码的行为就好像你在那里写了string *a。