我試圖訪問一個朋友的方法定義如下。我有4個文件。兩個頭:如何正確訪問好友功能?
a.h
頭:
#include "b.h"
class A
{
public:
A();
~A();
void testStuff(int i);
};
部首b.h
:
#include "a.h"
class A;
class B
{
friend class A;
public:
B();
~B();
friend void doStuff(int i);
};
和兩個包括一些代碼,a.cpp
:
#include "a.h"
void A::testStuff()
{
B b {B()};
b->doStuff(1);
}
b.cpp
:
#include "b.h"
void B::doStuff(int i)
{
m_stuff = i;
}
如果我刪除關鍵字friend
一切工作正常。但是,如果我宣佈doStuff()
作爲一個朋友,我得到以下錯誤:
error: ‘class B’ has no member named ‘doStuff’
我嘗試以下this教程。我錯過了什麼?
'doStuff()'是'B'的「朋友」方法,而不是成員。 – Rakib
更改'朋友無效doStuff(INT我);''無效doStuff(INT我);' – drescherjm
@RakibulHasan到底,我錯過了什麼? – default