我已经尽我所能完成了这项任务,但我很确定存在根本问题。我将期待您对如何使其变得更好的评论。问题定义如下: 两个类。 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;
}