Так что я все еще новичок в программировании на C++ и очень новичок в шаблонах. Я пытаюсь создать базовый класс шаблона (узел, если хотите), который содержит некоторые общие данные и двойное значение. Затем я хочу, чтобы другой класс содержал набор ранее упомянутого класса шаблона.
У меня проблемы с оператором меньшего, поскольку он идет на сервер в качестве моего компаратора.
Узел&Tree.h
#ifndef _POINTNODE_H_
#define _POINTNODE_
#include <set>
template<typename T>
class PointNode {
public:
PointNode(double p){ m_point = p;}
~PointNode();
bool operator < (const &PointNode<T> p1) const;
private:
const double m_point;
T *m_data;
};
template <typename T>
class PointTree {
public:
PointTree();
~PointTree();
private:
std::set<PointNode<T> > tree;
};
#endif
Узел&Дерево.cpp
#inlcude "Node&Tree.h"
#include <set>
template<typename T>
bool PointNode<T>:: operator < (const &PointNode<T> p1) const{
return m_point < p1.m_point;
}
Я получаю следующие ошибки
Node&Tree.cpp:5:39: error: ISO C++ forbids declaration of ‘parameter’ with no type [- fpermissive]
Node&Tree.cpp:5:39: error: expected ‘,’ or ‘...’
Node&Tree.cpp:5:6: error: prototype for ‘bool PointNode<T>::operator<(const int&) const’ does not match any in class ‘PointNode<T>’
Node&Tree.h:15:8: error: candidate is: bool PointNode<T>::operator<(const int&)"
Это в значительной степени не реализовано, но я просто хотел, чтобы основы скомпилировались, по крайней мере... И любые указатели на код или если вы думаете, что я делаю все это неправильно, сообщите мне!
Любая помощь будет потрясающей!