我已经完成了这个任务,尽我所知,但我确信存在根本性问题。我会期待您对如何使它变得更好的意见。问题定义如下: 两个类。 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