gpt4 book ai didi

C++ 类(带集合)存储通用模板类...编译问题

转载 作者:行者123 更新时间:2023-11-28 03:18:34 25 4
gpt4 key购买 nike

所以我对 C++ 编程和模板仍然很陌生。我正在尝试制作一个基本模板类(如果你愿意的话,一个节点),它包含一些通用数据和一个 double 据。然后我想让另一个类包含一组前面提到的模板类。

我在使用小于运算符时遇到了麻烦,因为它要作为我的比较器去服务器。

节点&树.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&)"

这在很大程度上尚未实现,但我只是想至少获得编译的基础知识......以及代码上的任何指针,或者如果您认为我这样做是错误的,请告诉我!

任何帮助都会很棒!

最佳答案

bool PointNode<T>:: operator < (const &PointNode<T> p1) const

应该是:

 bool PointNode<T>:: operator < (const PointNode<T>& p1) const

你把引用 & 放在了错误的位置,所以你有 forbids declaration of parameter error。另一个地方也有同样的错误。

bool operator < (const &PointNode<T> p1) const;

应该是

bool operator < (const PointNode<T>& p1) const;

关于C++ 类(带集合)存储通用模板类...编译问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16096402/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com