我有一个简单的课程:
兔子.h
class Bunny
{
public:
Bunny(string givenName);
~Bunny();
private:
string name;
};
兔子.cpp
#pragma once
#include "Bunny.h"
Bunny(string givenName)
{
name = givenName;
};
(我重写了代码,因为我不能复制,所以只是一个快速编写的例子)
一个 includes.h 文件 #include 是这个,而 source.cpp #include 是那个。每个文件只包含一次,source.cpp 只包含一次includes.h 文件。我确实尝试过使用#ifndef、#define、#endif。这两种方法都导致了同样的问题:编译器说这个函数(以及我添加的任何其他函数)是多重声明的。我还尝试将定义复制到 source.cpp (Bunny.h 和 Bunny.cpp 都按原样复制)并且错误消失了。
知道为什么编译器要定义这个函数两次