@Anvario0

С чем связана ошибка «ни одна перегруженная функция не может преобразовать все типы аргументов»?

Код:
#include <iostream>;
using namespace std;

template <typename T>
class List{
public:
	List();
	~List();

	void push_back(T data);
private:

	template <typename T>
	class Node {
	public:
		Node* pNext;
		T data;

		Node(Node* pnext = nullptr, T data = T()) {
			this.pNext = pNext;
			this->data = data;
		}
	};

	int size;
	Node<T>* head;

};

template <typename T>
List<T>::List() {
	this->size = 0;
	this->head = nullptr;
}

template <typename T>
List<T>::~List() {

}

template<typename T>
void List<T>::push_back(T data)
{
	if (this->head == nullptr) {
		this->head = new Node<T>(data); //**
	}
	else {
		//...
	}
}


int main() {
	List <int> lst;
	
	lst.push_back(12);
}


Строчку с ошибкой отметил //**.
Ошибка:"List::Node::Node": ни одна перегруженная функция не может преобразовать все типы аргументов
  • Вопрос задан
  • 382 просмотра
Пригласить эксперта
Ответы на вопрос 1
У вас конструктор класса Node принимает два аргумента, а вы передаете один.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы