c++ - 我如何在 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();
}
};
我这样做是为了学习如何声明类。
解决方案
如果你对 main 上面的类进行 delcare:
class Person;
那么你就可以做到
Person * person = 0;
或者
Person * person = some_other_person;
但是如果没有被告知有构造函数可以链接它,就不可能在这里实际创建一个人,或者使用一个人。
您可以将整个类定义移动到文件顶部,在 main.xml 之上。这将暂时解决它。
好的编程风格是创建一个名为 Person.h 的文件,将您的类放入其中,然后在您的主 cpp 文件中 #include "Person.h"。
推荐阅读
- go - 未命名结构类型的方法
- android - 在项目中使用 Realm 符合 Google Play 64 位
- symfony - 有没有办法在我的处理程序方法中确定哪些订阅的事件触发了处理程序?
- google-cloud-platform - 基于实例数的 GCP GCE SLA 的复合计算?
- javascript - 最简单的图像格式:PPM 到 dataURI
- c# - 从网络数据复制到逻辑数据或将数据作为类成员
- javascript - 编写此正则表达式的替代方法,因为它无法在 chrome 以外的其他浏览器中运行
- azure-sql-data-warehouse - 未找到 Azure 数据仓库 SELECT n'char' 列
- jquery - jQuery UI 滑块值更改时如何运行代码隐藏函数
- r - 使用 ggplot 将标签添加到具有比例的堆叠条形图