C++ 在 header 中声明一个 const 函数并在 .cpp 中实现它

C++ declaring a const function in header and implementing it in .cpp

我有以下 header:

#include <string>

using namespace std;

enum COLOR {Green, Blue, White, Black, Brown};


class Animal{
    private:
    string _name;
    COLOR _color;

    public:
    Animal();
    ~Animal();
    void speak() const;
    void move() const;
} ;

以及以下 .cpp 实现:

#include <iostream>
#include <string>
#include "Animal.h"
Animal::Animal(): _name("unknown")
    {
        cout << "constructing Animal object" << endl;
    };
Animal::~Animal()
    {
        cout << "destructing Animal object" << endl;
    }
void Animal::speak()
    {
        cout << "Animal speaks" << endl;
    }
void Animal:: move(){};

但是,speak() 和 move() 函数给我一个错误:“没有声明匹配 Animal::speak()”。如果我删除声明尾部的 'const' ,编译就没有问题。 如何在 .cpp 文件中正确实现 const 函数?

你忘了在实现中加入const

将您的代码更改为:

void Animal::speak() const
{
    cout << "Animal speaks" << endl;
}
void Animal::move() const {};