我已经尽我所能完成了这项任务,但我很确定存在根本问题。我将期待您对如何使其变得更好的评论。问题定义如下: 两个类。 XBoxGame和WorldPeace。
模板类称为Gift. 有一种方法称为shake(). 在里面shake(),我们将调用MakeNoise()我们的模板类型的一个实例T。只有XBoxGame作为MakeNoise()一种方法。
现在,main()只要您尝试制作一个Gift包含“”的XBoxGame“”(看看我在那里做了什么?),您就会在编译时知道它是否有效。尝试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;
}