鱼C论坛

 找回密码
 立即注册
查看: 42|回复: 2

[技术交流] 类是对象的集合,对象是类的个体

[复制链接]
发表于 4 天前 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
本帖最后由 ~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;
}
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 4 天前 | 显示全部楼层
代码有点不完整,下面是修复后的完整代码示例,并对其进行简单解读:
// 类的基础概念示例
#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 小助理,如未能正确解答您的问题,请继续追问。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 3 天前 | 显示全部楼层
类是对象的模板或蓝图,描述了对象的共同特性和行为;对象是类的一个具体实例。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-2-22 16:50

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表