请高手帮小弟我看下这段代码的有关问题该如何解决
请高手帮我看下这段代码的问题该怎么解决
小弟最近在学graph,试写了一段代码,准备测试一下书上介绍的几种算法,谁知出师未捷身先死,创建的类居然没能通过编译。。。请高手帮我指点一下,并给出解决方案。以下是代码:
vertex.h:
graphTest.cpp
错误提示内容:
vertex.h(21): error C2662: 'vertex<T>::getSelf' : cannot convert 'this' pointer from 'const vertex<T>' to 'vertex<T> &'
------解决方案--------------------
const 应该在“)”之后而不是在大括号之后
------解决方案--------------------
小弟最近在学graph,试写了一段代码,准备测试一下书上介绍的几种算法,谁知出师未捷身先死,创建的类居然没能通过编译。。。请高手帮我指点一下,并给出解决方案。以下是代码:
vertex.h:
#ifndef VERTEX_H
#define VERTEX_H
#include<iostream>
template<class T>
class vertex
{
public:
vertex(const T& s = T()):self(s), parent(T()), color('W'), vtime(0), ftime(0){};
void setSelf(T s) {self = s;}
void setParent(T p) {parent = p;}
void setColor(char c) {color = c;}
void setVtime(int t) {vtime = t;}
void setFtime(int t) {ftime = t;}
T getSelf() {return self;} const
T getParent() {return parent;} const
char getColor() {return color;} const
int getVtime() {return vtime;} const
int getFtime() {return ftime;} const
//错误提示在这里:
bool operator < (const vertex<T>& v) const {return (self < v.getSelf());
bool operator == (const vertex<T>& v) const {return (self == v.getSelf());}
private:
T self;
T parent;
char color;
int vtime;
int ftime;
};
template<class T>
std::ostream& operator << (std::ostream& str, vertex<T>& v)
{
return str << v.getSelf();
}
#endif
graphTest.cpp
#include<iostream>
#include<set>
#include"vertex.h"
using namespace std;
int main()
{
vertex<char> v1 = vertex<char>('C');
vertex<char> v2 = vertex<char>('B');
vertex<char> v3 = vertex<char>('A');
vertex<char> v4 = vertex<char>('c');
vertex<char> v5 = vertex<char>('b');
vertex<char> v6 = vertex<char>('a');
set<vertex<char>> s1;
s1.insert(v1);
s1.insert(v2);
s1.insert(v3);
s1.insert(v4);
s1.insert(v5);
s1.insert(v6);
set<vertex<char>>::iterator iter = s1.begin();
vertex<char> v;
while (iter != s1.end())
{
v = *iter;
cout << v << endl;
iter++;
}
return 0;
}
错误提示内容:
vertex.h(21): error C2662: 'vertex<T>::getSelf' : cannot convert 'this' pointer from 'const vertex<T>' to 'vertex<T> &'
c++
graph
类
算法
------解决方案--------------------
T getSelf()const {return self;}
T getParent() const {return parent;}
char getColor()const {return color;}
int getVtime()const {return vtime;}
int getFtime()const {return ftime;}
const 应该在“)”之后而不是在大括号之后
------解决方案--------------------