我应该为作业创建一个模板类,但是我遇到了许多我不太懂的错误,有人可以帮助我吗?我附上了我写的cp和头文件。我知道这可能很简单,但我是新手,谢谢!
#ifndef __Template_example__Initialisedchecker__
#define __Template_example__Initialisedchecker__
#include <stdio.h>
template <class data>
class Initialisedchecker
{
private:
data item;
bool definedOrN;
public:
Initialisedchecker()
{
definedOrN = false;
}
void setItem(const data&)
{
std::cin >> item;
definedOrN = true;
}
void displayItem()
{
if (definedOrN)
{
std::cout << item;
}
else
{
std::cout << "error, your item is undefined";
}
}
};
#endif
这是主要的:
#include <iostream>
#include "Initialisedchecker.h"
using namespace std;
int main()
{
item <int> x;
displayItem();
x = 5;
displayItem();
}
抱歉,我忘记添加我收到的错误,头文件没有出现任何错误,但在主要内容中,它说:
Use of undeclared identifier 'display item' ,
Use of undeclared identifier 'item' ,
Use of undeclared identifier 'x' ,
Expected a '(' for function-style cast or type construction
答案 0 :(得分:2)
类模板名为Initialisedchecker
,而不是item
。并且您需要在对象上调用成员函数。你需要:
int main()
{
Initialisedchecker <int> x;
x.displayItem();
// this is strange: x = 5;
// maybe use:
// x.setItem( 5 );
x.displayItem();
}