我正在寫一個程序讀入文本文件並將數據存儲到一個名爲User的對象類中。然後,我將User對象存儲到帶有push_back函數的名爲MyList的動態數組的模板化類中。沒有匹配函數調用模板類
目前我MYLIST類看起來像這樣
#ifndef MYLIST_H
#define MYLIST_H
#include <string>
#include <vector>
using namespace std;
template<class type>
class MyList
{
public:
MyList();
~MyList();
int size() const;
int at(int) const;
void remove(int);
void push_back(type);
private:
type* List;
int _size;
int _capacity;
const static int CAPACITY = 80;
};
和功能推回看起來像這樣
template<class type>
void MyList<type>::push_back(type newfriend)
{
if(_size >= _capacity){
_capacity++;
List[_size] = newfriend;
size++;
}
}
我的User類是如下
#ifndef USER_H
#define USER_H
#include "mylist.h"
#include <string>
#include <vector>
using namespace std;
class User
{
public:
User();
User(int id, string name, int year, int zip);
~User();
private:
int id;
string name;
int age;
int zip;
MyList <int> friends;
};
#endif
終於,在我主要功能我這樣宣佈用戶MyList
MyList<User> object4;
我呼籲的push_back是在User類是有效的如下
User newuser(int id, string name, int age, int zip);
object4.push_back(newuser);
所有數據,
目前即時得到一個錯誤「爲號召「MYLIST沒有匹配功能: :的push_back(用戶)(&)(INT,STD:字符串,整數,INT)」
「音符候選是:無效MYLIST ::的push_back(類型)[類型=使用者]」
嗯,我有一個用戶對象被定義爲包含一個(int,名稱,int,int)的對象,所以我不應該能夠使用這種格式來存儲一個用戶對象到MyList? – 2013-02-11 02:03:20
@DanielHwang請看最新的答案。 – 2013-02-11 02:10:30
非常感謝!我不敢相信我在這樣一個小小的錯誤上花了一個小時。 – 2013-02-11 02:12:57