通过模板化类中的成员函数返回不可修改的引用

时间:2014-11-17 05:02:16

标签: c++ templates c++11 reference

我对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;
    }
};

如果你们需要更多代码,请告诉我们。

1 个答案:

答案 0 :(得分:2)

除了命名问题之外,您还会遇到声明为const的成员函数以及对数据成员返回非const引用的问题:

A& get_name() const                    
{
    return name;
}

// has to be:
const A& get_name() const                    
{
    return name;
}
相关问题