我对C ++很陌生,我试图返回一个不可修改的引用。 我收到了这个错误:
__error C2365: 'NVPair<A,B>::name' : redefinition; previous definition was 'data member'
: see declaration of 'NVPair<A,B>::name'__
NVPair.h
#include<iostream>
using namespace std;
template <typename A, typename B>
class NVPair {
A name;
B value;
public:
NVPair();
NVPair(const A& nm, const B& vl)
{
name = nm;
value = vl;
}
A& name() const
{
return name;
}
B& value() const
{
return value;
}
};
如果你们需要更多代码,请告诉我们。
答案 0 :(得分:2)
除了命名问题之外,您还会遇到声明为const的成员函数以及对数据成员返回非const引用的问题:
A& get_name() const
{
return name;
}
// has to be:
const A& get_name() const
{
return name;
}