Переменная C++ имеет инициализатор, но неполный тип?

Я пытаюсь скомпилировать 2 класса в C++ с помощью следующей команды:

g++ Cat.cpp Cat_main.cpp -o Cat

Но я получаю следующую ошибку:

Cat_main.cpp :10:10: error: переменная 'Cat Joey' имеет инициализатор, но неполный тип

Кто-нибудь может мне объяснить, что это значит? В основном мои файлы создают класс (Cat.cpp) и создают экземпляр (Cat_main.cpp). Вот мой исходный код:

Cat.cpp:

#include <iostream>
#include <string>

class Cat;

using namespace std;

int main()
{
    Cat Joey("Joey");
    Joey.Meow();

    return 0;
}

Cat_main.cpp:

#include <iostream>
#include <string>

using namespace std;

class Cat
{
    public:
        Cat(string str);
    // Variables
        string name;
    // Functions
        void Meow();
};

Cat::Cat(string str)
{
    this->name = str;
}

void Cat::Meow()
{
    cout << "Meow!" << endl;
    return;
}
48
задан Deanie 5 June 2016 в 18:28
поделиться