+-
c – “非标准语法;使用’&’创建指向成员的指针“错误vs2015
我有这个功能:

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;
}

每当我尝试运行该程序时,我都会收到以下错误:

non-standard syntax; use '&' to create a pointer to member

无法找到解决方法.

最佳答案
如果你使用

if (usersList[i]->getUsername() != excludeUser->getUsername)

代替

if (usersList[i]->getUsername() != excludeUser->getUsername())

你的编译器会认为你想使用函数指针而不是方法本身,如果你想使用函数指针,你仍然需要得到它的地址(使用&).

所以请确保在函数调用后不要忘记你的()!

点击查看更多相关文章

转载注明原文:c – “非标准语法;使用’&’创建指向成员的指针“错误vs2015 - 乐贴网