【发布时间】:2015-12-08 15:37:12
【问题描述】:
有一个名为children 的指针结构,其中有两个指针,name 和age。
employees[i].children[j].name = new string();
employees[i].children[j].age = new int[1];
cout << "WRITE THE NAME OF THE DEPENDENT " << j+1 << endl;
getline(cin,employees[i].children[j].name);
这给了我这个错误:没有匹配函数调用'getline(std::istream&, std::string*&)'
【问题讨论】:
-
将指针指向您不打算分享的单一事物几乎总是错误的。很可能您应该将
string *name和int *age替换为string name和int age,因为您不需要那里的其他间接级别。 -
因为根据您的代码示例,它不是
string,而是一个指向string的指针。正如其他人所说,最好不要让它成为指针。使用string name;而不是string* name;。age也一样。然后你就完全不用担心name = new string();部分了。
标签: c++ memory-management getline