Проблемы с объявлением строк c ++ - PullRequest
2 голосов
/ 23 апреля 2020

Я пытался скомпилировать эту простую программу, но всякий раз, когда я пытаюсь скомпилировать ее, она выдает мне много ошибок, и все они связаны со строковыми ошибками, такими как "syntax error:identifier 'string'" и "undeclared identifier" для моей строковой функции и переменной. Я попытался удалить using namespace std; и использовать std::string вместо этого, но все равно происходят те же ошибки. Я использую Visual Studio 2017.

#include "Animal.h"
#include <iostream>
#include <string>
using namespace std;

int main() {
    Animal Cat;

    cin.get();
}

, и это Animal.h:

class Animal
{
public:
    Animal();

    void SetAnimalName(string x);
    string GetName();

    void SetAnimalAge(int y);
    int GetAnimalAge();

private:
    string AnimalName;
    int AnimalAge;
};

Животное. cpp

#include "Animal.h"
#include <iostream>
#include <string>
using namespace std;

Animal::Animal()
{
    AnimalName = "cat";
    AnimalAge = 3;
    std::cout << "the Animal is: " << AnimalName << std::endl << "its Age is: " << AnimalAge;
}

void Animal::SetAnimalName(string x) {
    AnimalName = x;
}
string Animal::GetName() {
    return AnimalName;
}
void Animal:: SetAnimalAge(int y) {
    AnimalAge = y;
}
int Animal::GetAnimalAge() {
    return AnimalAge;
}

1 Ответ

3 голосов
/ 23 апреля 2020

Вам не хватает #include <string> в вашем Animal.h, что нарушает компиляцию вашего main.cpp.

Вам также не хватает std::string в вашем Animal.h. Как правило, не используйте using namespace std и придерживайтесь префикса стандартных библиотечных функций с пространством имен std (std::string в вашем случае).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...