我有一个基类mysql --skip-column-names --raw mydatabase -e "SELECT CONCAT('CREATE PROCEDURE `', specific_name, '`(', param_list, ') AS ') AS `stmt`, body_utf8 FROM `mysql`.`proc` WHERE `db` = 'mydatabase' AND specific_name = 'myprocedure';" 1> myprocedure.sql
和一个派生类Animal
。 Lion
有一个名为Animal
的受保护函数。我想从eat()
中定义的朋友函数中调用eat()
,但是当它不能编译时:
Lion
为什么我无法从error: call to non-static member function without an object argument
的朋友那里呼叫受保护的功能?我有解决办法,但我无法弄清楚为什么朋友不能打电话给Lion
。如果我使用eat()
或Animal::eat
似乎无关紧要,我会得到同样的错误。想法?
Lion::eat
答案 0 :(得分:1)
friend
函数是非成员函数,可以访问类的私有成员。但您仍需提供访问数据成员的对象详细信息。
eat
功能的使用必须与object_name.eat()
功能中的feed
类似。