1
我該如何解開這個結?如果它很重要,我使用Visual Studio作爲我的編譯器。顯然,人們可以將MOO移動到其他類並將其他類移動到其他類,但這是現實中發生的更復雜問題的模型。我認爲這裏需要一個前向定義,但我不知道如何構造它。向前聲明需要返回到原始類的模板類?
這個結甚至可以解開,還是必須將sampClass分成兩個類,或者一個具有接口的類?
#include <iostream>
class sampClass
{
public:
template <typename Z>
otherClass<Z> potato()
{
return otherClass<Z>(this);
}
sampClass(int a)
{
m_a = a;
}
void moo()
{
std::cout << "MOO!";
}
int m_a;
};
template <typename T>
class otherClass
{
public:
otherClass(sampClass* doMoo)
{
doMoo->moo();
}
};
int main()
{
sampClass a(5);
a.potato<int>();
return 0;
}
以上'otherClass'加上'類otherClass;'不要#包括頭。 – AndyG