【发布时间】:2013-09-02 11:00:00
【问题描述】:
我有一个类,我正在尝试创建一个友元函数来操作该类的数据。
这是我正在尝试做的一个示例:
// test.hpp
class test
{
public:
friend void friendly_function();
private:
int data;
};
void test::friendly_function()
{
data = 0;
}
但是,编译器吐出一个错误:test.hpp:23:34: error: no ‘void test::friendly_function()’ member function declared in class ‘test’
我知道我可以用这种方式声明运算符,如下所示:
class test
{
public:
friend const bool operator<(const test& _lhs, const test& _rhs);
private:
int data;
};
const bool test::operator<(const test& _lhs, const test& _rhs)
{
return (_lhs.data < _rhs.data);
}
那么为什么我不能用friendly_function 来做这件事呢?友元函数是否只允许作为运算符?
【问题讨论】:
标签: c++ friend access-control friend-function