C++ 创建采用参数C++;

C++ 创建采用参数C++;,c++,C++,这个问题很简单,但我找不到关于这个让我吃惊的具体问题的答案 当试图调用更改私有类字符串的类函数时,我得到一个错误字符串 编辑:我已经解决了这个问题-我忘记在头文件中包含所需的名称空间和程序集引用 以下是.h文件代码: #ifndef ANIMAL_H #define ANIMAL_H class Animal { public: Animal(); ~Animal(); string getName(); void setName(string animalNa

这个问题很简单,但我找不到关于这个让我吃惊的具体问题的答案

当试图调用更改私有类字符串的类函数时,我得到一个错误字符串

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

以下是.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;
}

看起来您忘记在标题中包含
。字符串对象也存在于
std
命名空间中,因此您需要提供一个完全限定的名称来使用它(不要将
usingnamespace
添加到标题中)

\ifndef ANIMAL\u H
#给动物下定义
#include//您需要将此
类动物
{
公众:
动物();
~Animal();
std::string getName();
void setName(std::string animalName);
私人:
std::字符串名;
};
#恩迪夫

在每个字符串声明之前,您的类标题缺少字符串库声明和std::

#ifndef ANIMAL_H
#define ANIMAL_H

#include <string>

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

#endif
\ifndef ANIMAL\u H
#给动物下定义
#包括
类动物
{
公众:
动物();
~Animal();
std::string getName();
void setName(std::string animalName);
私人:
std::字符串名;
};
#恩迪夫
@编辑 向上


你赢了我!就在我发布我的时,您的答案出现了。

您遇到了什么错误?您忘记了说明错误代码和错误消息是什么,以及它们发生在哪一行。@Pharap这就是问题所在,谢谢。没有意识到.h文件中也需要程序集引用。
`error C2146: syntax error : missing ';' before identifier 'getName'`   
#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
#ifndef ANIMAL_H
#define ANIMAL_H

#include <string>

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

#endif