我有这个功能:
std::string Room::getUsersAsString(std::vector<User*> usersList, User * excludeUser)
{
std::string usersNames = " ";
for (int i = 0; i < usersList.size(); i++) {
if (usersList[i]->getUsername() != excludeUser->getUsername) {
usersNames.append(usersList[i]->getUsername);
usersNames.append(" ");
}
}
return usersNames;
}
每当我尝试运行该程序时,都会出现以下错误:我该如何解决?
最佳答案
如果您使用
if (usersList[i]->getUsername() != excludeUser->getUsername)
代替
if (usersList[i]->getUsername() != excludeUser->getUsername())
您的编译器会认为您要使用函数指针而不是方法本身,并且如果您想使用函数指针,则仍必须获取它的地址(使用&)。
因此,请确保在函数调用后不要忘记()!
关于c++ - Visual Studio 2015中的"non-standard syntax; use '和' to create a pointer to member"错误,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/38477997/