gpt4 book ai didi

c++ - 创建带有参数 C++ 的单独类文件函数

转载 作者:行者123 更新时间:2023-11-28 06:33:03 25 4
gpt4 key购买 nike

非常简单的问题,但我找不到关于这个让我感到惊讶的具体问题的答案。

尝试调用更改私有(private)类字符串的类函数时出现一串错误。

编辑:我已经解决了问题 - 我忘记在头文件中包含所需的命名空间和程序集引用。

这是 .h 文件代码:

#ifndef ANIMAL_H
#define ANIMAL_H

class Animal
{
public:
Animal();
~Animal();
string getName();
void setName(string animalName);
private:
string name;
};

#endif

这是类.cpp:

#include "Animal.h"
#include <iostream>
#include <string>
#include <conio.h>

using namespace std;

Animal::Animal()
{

}


Animal::~Animal()
{
}

void Animal::setName(string animalName)
{
name = animalName;
}

string Animal::getName()
{
return name;
}

最后,这里是 int main(),我试图在其中调用函数(我在编译时遇到了一堆错误)

int main()
{
Animal chicken;

chicken.setName("gary");

cout << chicken.getName() << endl;

_getch();
}

错误信息包括:

错误 C2061:语法错误:标识符“字符串”

错误 C4430:缺少类型说明符 - 假定为 int。注意:C++不支持default-int

`error C2146: syntax error : missing ';' before identifier 'getName'`   

最佳答案

看起来你忘了包括 <string>在你的标题中。字符串对象也存在于 std 中。命名空间,因此您需要提供一个完全限定的名称才能使用它(不要将 using namespace 添加到标题中)。

#ifndef ANIMAL_H
#define ANIMAL_H
#include <string> // You need to include this

class Animal
{
public:
Animal();
~Animal();
std::string getName();
void setName(std::string animalName);
private:
std::string name;
};

#endif

关于c++ - 创建带有参数 C++ 的单独类文件函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27209443/

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