(c++) Passing `const' as `this' argument of `' discards qualifiers

1. 问题描述

#include
#include
using namespace  std;


template
class Element{
    public:
        。。。
        Element(const Element &e);
        int getDim()  { return this->dim; }

       。。。
    private:
        int dim;

        。。。

};

。。。

在调用拷贝构造时,报错为“error: passing ‘const Element’ as ‘this’ argument of ‘const std::vector >& Element::getDim() [with T = int]’ discards qualifiers

2. 解决方案

因为this指针是不可改变的,为了确保其不变性,将getDim函数也定义为const的,即“int getDim() const { return this->dim; }

你可能感兴趣的:(编程及调试)