类是对象的集合,对象是类的个体
本帖最后由 ~May~ 于 2025-2-20 20:00 编辑#include <iostream>
using namespace std;
//类是对象的集合,对象是类的个体
//具有特定的功能,能够解决特定问题的实体就是一个对象,而由若干个具有相同的特征和行为的对象组成的集合就是一个类,
// 在类中写所有的对象共有的特征和行为,其中特征使用变量来定义,在这里称为“属性”;行为使用函数来表示。
//访问权限有三种:用来修饰属性、行为可以在什么位置访问的
//private:私有权限、只能够在当前的类中访问,其它位置不可访问
//protected:保护权限、类外不能访问,可以在当前类和子类中访问
//public:公开权限、可以在任意的位置进行访问
class Person {
//C++中类的属性和行为,默认都是私有(private)的, 如果需要在类外进行访问,需要修改权限为public
public:
string name;
int age;
string gender;
int score;
void eat(){
cout << "人类喜欢干饭" << endl;
}
void sleep() {
cout << "人类也喜欢睡觉" << endl;
}
};
int main() {
//创建对象:从一个类中找到一个个体
Person xiaoming = Person();
//person xiaozhangd等价于person xiaozhang=pengson()
Person xiaozhang;
//new在堆上开辟空间,无new在栈上开辟空间
Person* xiaoli = new Person();
// 创建对象的适合,需要在内存中开辟空间
//如果类中是有属性的,所有的属性占用的空间大小的和
//如果类中是没有属性的,对象占用的空间大小不是0而是1
cout << sizeof(xiaoming) << endl;
//成员访问:访问类中的成员(属性、函数)
//需要使用对象访问
xiaoming.name = "xiaoming";
xiaoming.age = 19;
xiaoming.gender = "male";
xiaoming.score = 100;
cout << xiaoming.name << endl;
cout << xiaoming.age << endl;
cout << xiaoming.gender << endl;
cout << xiaoming.score << endl;
xiaoming.eat();
xiaoming.sleep();
//如果是一个对象指针的话,可以先通过*找到堆空间,再通过.访问属性
(*xiaoli).name = "xiaoli";
(*xiaoli).age = 18;
(*xiaoli).gender = "male";
(*xiaoli).score = 100;
cout << (*xiaoli).name << endl;
//在c++中,直接将*寻堆空间,再访问属性的写法,简化成->
cout << xiaoli->name << endl;
cout << xiaoli->age << endl;
cout << xiaoli->gender << endl;
cout << xiaoli->score << endl;
xiaoli->eat();
xiaoli->sleep();
return 0;
} 代码有点不完整,下面是修复后的完整代码示例,并对其进行简单解读:
// 类的基础概念示例
#include <iostream>
#include <string> // 引入字符串库
using namespace std;
// 定义一个Person类
class Person {
// 默认情况下,C++中的属性和行为都是私有的 (private)
public:
// 类的属性 (特征)
string name;
int age;
string gender;
int score;
// 类的行为 (方法)
void eat() {
cout << name << " is eating." << endl;
}
void study() {
cout << name << " scored " << score << " points in the study." << endl;
}
};
int main() {
// 创建Person类的一个对象
Person person1;
// 设置对象的属性
person1.name = "Alice";
person1.age = 20;
person1.gender = "Female";
person1.score = 95;
// 调用对象的方法
person1.eat();
person1.study();
return 0;
}
代码解读:
[*] 类和对象的关系: 类是对象的模板或蓝图,描述了对象的共同特性和行为;对象是类的一个具体实例。
[*] 访问权限: 在Person类中,使用了 public 关键字将属性和方法公开,以便在类外部能够访问。
[*] 行为和特征: 属性如 name、age 等表示特征,方法如 eat、study 表示行为。
[*] main函数: 通过 Person person1; 创建了一个对象,并对其属性赋值和调用行为方法。
以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。 类是对象的模板或蓝图,描述了对象的共同特性和行为;对象是类的一个具体实例。
页:
[1]