我試圖在我的類中聲明struct
,然後使用該類中的成員函數將指針 返回到struct
,但它不起作用。C++返回指向函數結構的指針
這裏是我的代碼:
someClass.h:
class someClass
{
public:
someClass();
sword* returnSword();
struct sword
{
int str;
char name;
};
sword* m_sword;
};
someClass.cpp:
#include "someClass.h"
someClass::someClass()
{
m_sword = new sword;
m_sword->name='s';
m_sword->str=5;
}
someClass::sword* someClass::returnSword()
{
return m_sword;
}
在情況下,如果我的代碼是總廢話,請解釋一下我怎麼能有在我的類中的結構,初始化它,然後返回指向該結構的類的指針。
謝謝。
定義「不起作用」。會發生什麼,以及你希望發生什麼不同?我沒有看到你顯示的代碼中有任何明顯的錯誤。 –
那麼如果我嘗試編譯,它給了我一堆錯誤,但即使之前, 在功能returnSword()函數名的初始化紅色突出顯示了下文。 聲明是與不兼容的 「 * SomeClass的:: returnSword()」 –
user1335175
移動的高於returnSword'的'聲明的'sword'定義。這似乎很不必要的動態分配一個'sword',如果你這樣做,那麼你的類需要遵循【三規則(https://stackoverflow.com/q/4172722/241631)。 – Praetorian