我已經完成了這個任務,盡我所知,但我確信存在根本性問題。我會期待您對如何使它變得更好的意見。問題定義如下: 兩個類。 XBoxGame
和WorldPeace
。模板類Gift
。有一種方法稱爲shake()
。在shake()
內部,我們打電話MakeNoise()
對我們的模板類型T
的一個實例。只有XBoxGame
有MakeNoise()
作爲一種方法。試圖瞭解模板類如何工作
現在在main()
當您嘗試製作一個包含XBoxGame
的「Gift
」(請參閱我在此處做了什麼?)後,您會知道它在編譯時是否有效。嘗試Gift<WorldPeace>
,它不會編譯,因爲缺少MakeNoise()
。你輸入的內容應該只有正確模板化的XBoxGame
類調用shake()
和WorldPeace()
編譯,但只是因爲它沒有在main()
中使用。
最終結果「你只能放一個讓禮物變成噪音的班級」。 代碼中,我寫道:
#include <iostream>
class XBoxGame
{
void makeNoise(int,int)
{
std::cout << "Is this Working ? ";
};
};
class WorldPeace
{};
template <typename T>
class Gift
{
public:
T shake()
{
void XboxGame::makeNoise();
}
};
本公司主營:
#include "Template.h"
using namespace std;
int main()
{
Gift <XBoxGame> ;
Gift <WorldPeace>;
return 0;
}
非常感謝你max66。你完美地解釋了一切,我明白了我所有的問題。謝謝 – ArashDe