gpt4 book ai didi

c++ - 为什么当我使用头文件和与类同名的 cpp 文件创建类时,类会出错

转载 作者:行者123 更新时间:2023-11-28 01:48:05 25 4
gpt4 key购买 nike

我创建了一个名为 Cat 的类。当我尝试访问 Cat 类时,它显示以下错误。

||=== Build file: "no target" in "no project" (compiler: unknown) ===|
F:\Classes\Classes.o:Classes.cpp|| undefined reference to 'Cat::Cat()'|
F:\Classes\Classes.o:Classes.cpp|| undefined reference to 'Cat::speak()'|
F:\Classes\Classes.o:Classes.cpp|| undefined reference to 'Cat::~Cat()'|
F:\Classes\Classes.o:Classes.cpp|| undefined reference to 'Cat::~Cat()'|
||error: ld returned 1 exit status|
||=== Build failed: 5 error(s), 0 warning(s) (0 minute(s), 0 second(s)) ===|

这是我的代码:

对于类.cpp

#include<iostream>
#include "Cat.h"
using namespace std;
int main()
{
cout<<"Hello"<<endl;
Cat cat1;
cat1.speak();
cout<<"Program Ended..."<<endl;
return 0;
}

对于 Cat.cpp

#include<iostream>
#include "Cat.h"
using namespace std;
Cat::Cat()
{
cout<<"Cat created.."<<endl;
color = 'R';
}
Cat::~Cat()
{
cout<<"Cat Destroyed.."<<endl;
}
void Cat::speak()
{
if(color == 'R')
cout<<"I am a red Cat....."<<endl;
else
cout<<"I am a Cat.....------"<<endl;
}

对于Cat.h

#ifndef CAT_H_INCLUDED
#define CAT_H_INCLUDED
class Cat
{
public:
void speak();
char color;
Cat();
~Cat();
protected:
private:
};
#endif // CAT_H_INCLUDED

有一件事我应该提一下。所有这些文件都在同一个文件夹中,我正在使用 CodeBlocks。

最佳答案

当您忘记将包含定义的库链接到您在代码中使用的函数时,通常会收到“ undefined reference ”。你的情况类似。所以要么- 您为您的“Cat”代码创建一个单独的库并链接到您的客户端代码(Class.cpp)或- 编译类似于下行g++ Classes.cpp Cat.cpp -o 猫

关于c++ - 为什么当我使用头文件和与类同名的 cpp 文件创建类时,类会出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44060994/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com