在Xcode上用C ++创建模板类

时间:2015-05-15 15:43:57

标签: c++ xcode class templates datatemplate

我应该为作业创建一个模板类,但是我遇到了许多我不太懂的错误,有人可以帮助我吗?我附上了我写的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

1 个答案:

答案 0 :(得分:2)

类模板名为Initialisedchecker,而不是item。并且您需要在对象上调用成员函数。你需要:

int main()
{
    Initialisedchecker <int> x;
    x.displayItem();
    // this is strange: x = 5;
    // maybe use:
    // x.setItem( 5 );
    x.displayItem();

}