gpt4 book ai didi

c++ - 你能在 C++ 中将一个函数放在另一个函数中吗?

转载 作者:行者123 更新时间:2023-11-28 00:40:25 26 4
gpt4 key购买 nike

假设我有两个函数,一个调用另一个来工作。

void friendList::addFriend(string userNameIn) 
{
if(friendList::isFriend(userNameIn))
//add friend
}

bool friendList::isFriend(string name)
{
//check if user name exists
}

这是允许的吗?我收到以下错误:在成员函数“void User::addFriend(std::string)”中:
和错误:无法在没有对象的情况下调用成员函数“bool friendList::isFriend(std::string)”

是不是功能还没完全填好?

最佳答案

是的,函数当然可以调用C++中的其他函数。

这样做不是将函数放在其他函数中的情况:您的问题标题具有误导性。

看起来 addFriend 可能是一个静态成员函数,因此它没有对象,而 isFriend 是一个非静态成员函数。当类的静态成员函数调用非静态成员函数时,它必须提供一个对象:

class someclass {
// ...
static void static_member();
void nonstatic_member();
};

void some_class::static_member()
{
nonstatic_member(); // error
some_instance.nonstatic_member(); // okay
}

void some_class::nonstatic_member()
{
}

static_member 不能调用 nonstatic_member,但它可以在对象上调用 nonstatic_member。如果 some_instance 在某处被适本地定义为 some_class 的实例,它将起作用。

关于c++ - 你能在 C++ 中将一个函数放在另一个函数中吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19189881/

26 4 0