尝试修复不会让我开始对其进行其余编程的错误

时间:2018-10-04 02:10:21

标签: c++ class templates typename

在我正在处理的类中,该项目出现错误。错误是

  

[错误]无效使用没有参数列表的模板名称'SimpleListContainer'

//Application.cpp
#include <iostream>
#include "SimpleListContainer.cpp"
 using namespace std;
 int main()
   {
     SimpleListContainer obj1;
   }

这是其他文件

    //#pragma once

#include <iostream>

using namespace std;

template <typename T>
class SimpleListContainer {

private:
    int size;
    const static int capacity = 5;
    T data[capacity];

public:
    SimpleListContainer();//which will add an item of type T to our array and return true, or return false if array already full
//  bool insert(T);//which will return true / false depending on if value T is present in array
//  bool search(T);//which will return the number of items currently stored(different from capacity which is fixed)
    int length();//which returns true if list is empty(size 0) or else false
    bool empty();//which prints all the data stored, line by line for each element in the array
    void print();//which clears the list by resetting size to 0
    void clear();//which deletes all instances of T found in the list and compresses the list via a simple algorithm
//  void remove(T);

};

SimpleListContainer::SimpleListContainer()
{
    size = 0;
}

我只需要知道我做错了什么。这是我第一次在程序中使用模板,因此我完全不理解它,而我发现的在线资源也无法解决我遇到的问题。

2 个答案:

答案 0 :(得分:0)

  

我只需要知道我在做错什么。

实例化类模板时没有传递type参数。

这样的类模板:

template<typename T>
class MyTemplate { public: T t; };

使用时需要填写T

int main () {
    MyTemplate<int> o { 42 };
    std::cout << o.t;
}

您应该返回C ++书籍,并重新阅读模板一章。

答案 1 :(得分:0)

关于如何分别定义模板类功能存在错误。 代替

SimpleListContainer::SimpleListContainer()
{

您需要写:

template<typename T>
SimpleListContainer<T>::SimpleListContainer()
{