そのため、私はまだ C++ プログラミングの初心者であり、テンプレートに関しては非常に初心者です。一般的なデータと double を保持する基本的なテンプレート クラス (場合によってはノード) を作成しようとしています。次に、前述のテンプレート クラスのセットを含む別のクラスを作成します。
比較演算子としてサーバーに送信されるため、小なり演算子に問題があります。
Node&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&)"
これはほとんど実装されていませんが、少なくともコンパイルするための基本を取得したかっただけです...コードに関するポインタ、またはこれについてすべて間違っていると思われる場合は教えてください!
どんな助けでも素晴らしいでしょう!