我有这个功能:

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/

10-12 03:40