Я пишу программу, которая читает в текстовом файле и хранит данные в класс объектов, называемых User. Затем я сохраняю объекты User в шаблонном классе динамических массивов MyList с функцией push_back.Нет подходящей функции Вызов в классе шаблона
В настоящее время мой класс 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++;
}
}
Мой класс Пользователь следующим
#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 newuser(int id, string name, int age, int zip);
object4.push_back(newuser);
Всех данных в классе пользователя является действительным,
В настоящее время им получает ошибку «нет подходящей функции для вызова«MyList: : push_back (Пользователь) (&) (интермедиат, станд: строка, Int, Int)»
"кандидатов записные являются: пустота MyList :: push_back (тип) [с типом = Пользователь]"
Ну, у меня есть объект User, определенный как объект, содержащий (int, name, int, int), поэтому я не должен использовать этот формат для хранения объекта User в MyList? –
@ DanielHwang См. Обновленный ответ. –
Большое вам спасибо! Я не могу поверить, что я провел час с такой мелкой ошибки. –