首页 > 解决方案 > 我如何在 C++ 中声明一个类

问题描述

我想Person在 main 方法之前声明该类,但它给了我一个错误,即该类Person未定义

main方法正在制作对象Person,但我不知道如何像使用方法一样声明它。

//main Function
int main()
{
    Person person = Person("Majd", 18, 177); //Error "Person class is undefined"
    person.printPerson();
}

class Person
{
    //Private Attributes
    int age;
    int height;
    string name;
    //Public Atributes
public:

    Person(string name, int age, int height) {
        setName(name);
        setAge(age);
        setHeight(height);
    }
    //Getters
    string getName() {
        return name;
    }
    int getAge() {
        return age;
    }
    int getHeight() {
        return height;
    }
    //Setters
    void setName(string name) {
        this->name = name;
    }
    void setAge(int age) {
        this->age = age;
    }
    void setHeight(int height) {
        this->height = height;
    }

    void printPerson() {
        cout << "Name: " << getName() << " Age: " << getAge() << " height: " << getHeight();
    }
};

我这样做是为了学习如何声明类。

标签: c++declarationdeclare

解决方案


如果你对 main 上面的类进行 delcare:

class Person;

那么你就可以做到

Person * person = 0; 或者 Person * person = some_other_person;

但是如果没有被告知有构造函数可以链接它,就不可能在这里实际创建一个人,或者使用一个人。

您可以将整个类定义移动到文件顶部,在 main.xml 之上。这将暂时解决它。

好的编程风格是创建一个名为 Person.h 的文件,将您的类放入其中,然后在您的主 cpp 文件中 #include "Person.h"。


推荐阅读