@Neonoviiwolf
Flutter developer

Первый раз использую клион, не пойму, чем ему не угодил namespace?

Доброго
Чёт Clion много что подсвечивает красным и не пойму в чём дело
5b1864bf5a5f4260429801.jpeg
#include <iostream>
using namespace std;


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

	void push_back(T data);

private:
	template <namespace T>
	class Node {
	public:
		Node * pNext;
		T data;
		Node(T data = T(), Node * pNext = nullptr) {
			this->data = data;
			this->pNext = pNext;
		}
	};
	int SIZE;
	Node<T> *head;
};


template<namespace T>
List<T>::List()
{
	SIZE = 0;
	head = nullptr;
};
template<namespace T>
List<T>::~List()
{
};
template<namespace T>
void List<T>::push_back (T data)
{
};

int main() {
	
	system("pause");
	return 0;
}
  • Вопрос задан
  • 220 просмотров
Решения вопроса 1
@ThirVondukr
Как я понимаю - реализуешь односвязный список, проблема в том, что ты не можешь передавать namespace в шаблон, да и зачем?
+ в объявлении класса Node в шаблоне у тебя дублируется переменная T, которую в принципе можно даже не указывать, тогда тип переменной data класса Node примет тип указанный классу List. (Надеюсь ты разберешься в этой писанине)
#include <iostream>
using namespace std;


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

  void push_back(T data);

private:
  class Node {
  public:
    Node * pNext;
    T data;
    Node(T data = T(), Node * pNext = nullptr) {
      this->data = data;
      this->pNext = pNext;
    }
  };
  int SIZE;
  Node *head;
};


template<class T>
List<T>::List()
{
  SIZE = 0;
  head = nullptr;
};
template<class T>
List<T>::~List()
{
};
template<class T>
void List<T>::push_back (T data)
{
};

int main() {

  system("pause");
  return 0;
}

P.S. Надеюсь, что помог.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

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