鱼C论坛

 找回密码
 立即注册
查看: 1159|回复: 8

[已解决]能帮我通过举例讲一下c++中类的知识吗

[复制链接]
发表于 2023-6-9 10:18:19 | 显示全部楼层 |阅读模式
1鱼币
有点不太会用
最佳答案
2023-6-9 10:18:20
当然可以,让我们从创建一个基础的类开始。在C++中,类是一个定义一种特定类型的蓝图或模板。一个类定义了该类型的对象(也被称为类的实例)可以包含什么(数据成员),以及它可以做什么(成员函数或方法)。

我们可以以一个"Person"类为例子开始。这个类包含两个数据成员(姓名和年龄),以及一些成员函数用来操作这些数据。
class Person {
public: // 下面定义的是公开的成员变量和成员函数
    // 成员变量
    string name;
    int age;

    // 构造函数
    Person(string personName, int personAge) {
        name = personName;
        age = personAge;
    }

    // 成员函数
    void introduceSelf() {
        cout << "Hi, I'm " << name << " and I'm " << age << " years old." << endl;
    }
};

在这个例子中, Person  是类的名字, name  和  age  是数据成员, Person  是构造函数,用于创建类的实例。 introduceSelf  是成员函数,它让人物自我介绍。

要使用这个类,你可以创建一个  Person  对象,并调用它的  introduceSelf  方法,就像这样:
int main() {
    // 创建一个 Person 对象
    Person john("John Doe", 22);

    // 使用对象的 introduceSelf 方法
    john.introduceSelf();

    return 0;
}

当你运行这个程序,它将输出: "Hi, I'm John Doe and I'm 22 years old."  这就是一个简单的类及其在C++中的应用示例。类提供了一种方法来封装数据和操作数据的函数,从而使你的代码更清晰、易读和易于维护。

最佳答案

查看完整内容

当然可以,让我们从创建一个基础的类开始。在C++中,类是一个定义一种特定类型的蓝图或模板。一个类定义了该类型的对象(也被称为类的实例)可以包含什么(数据成员),以及它可以做什么(成员函数或方法)。 我们可以以一个"Person"类为例子开始。这个类包含两个数据成员(姓名和年龄),以及一些成员函数用来操作这些数据。 在这个例子中, Person 是类的名字, name 和 age 是数据成员, Person 是构造函数,用 ...
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2023-6-9 10:18:20 | 显示全部楼层    本楼为最佳答案   
当然可以,让我们从创建一个基础的类开始。在C++中,类是一个定义一种特定类型的蓝图或模板。一个类定义了该类型的对象(也被称为类的实例)可以包含什么(数据成员),以及它可以做什么(成员函数或方法)。

我们可以以一个"Person"类为例子开始。这个类包含两个数据成员(姓名和年龄),以及一些成员函数用来操作这些数据。
class Person {
public: // 下面定义的是公开的成员变量和成员函数
    // 成员变量
    string name;
    int age;

    // 构造函数
    Person(string personName, int personAge) {
        name = personName;
        age = personAge;
    }

    // 成员函数
    void introduceSelf() {
        cout << "Hi, I'm " << name << " and I'm " << age << " years old." << endl;
    }
};

在这个例子中, Person  是类的名字, name  和  age  是数据成员, Person  是构造函数,用于创建类的实例。 introduceSelf  是成员函数,它让人物自我介绍。

要使用这个类,你可以创建一个  Person  对象,并调用它的  introduceSelf  方法,就像这样:
int main() {
    // 创建一个 Person 对象
    Person john("John Doe", 22);

    // 使用对象的 introduceSelf 方法
    john.introduceSelf();

    return 0;
}

当你运行这个程序,它将输出: "Hi, I'm John Doe and I'm 22 years old."  这就是一个简单的类及其在C++中的应用示例。类提供了一种方法来封装数据和操作数据的函数,从而使你的代码更清晰、易读和易于维护。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2023-6-9 17:27:19 | 显示全部楼层
isdkz 发表于 2023-6-9 10:21
当然可以,让我们从创建一个基础的类开始。在C++中,类是一个定义一种特定类型的蓝图或模板。一个类定义了 ...

能不能问一下在执行john.introduceSelf();的执行顺序是什么
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2023-6-9 17:30:27 | 显示全部楼层
tttttt@@@@@@ 发表于 2023-6-9 17:27
能不能问一下在执行john.introduceSelf();的执行顺序是什么

执行  john.introduceSelf();  时,以下是步骤的概述:

1. 找到命名为 "john" 的  Person  类型对象。这个对象是在  main  函数中定义的。

2. 在找到的对象中查找名为 "introduceSelf" 的成员函数。

3. 执行找到的 "introduceSelf" 函数。这个函数没有参数,所以直接开始执行。

在  introduceSelf  函数中:

1. 打开输出流  cout ,准备将输出发送到标准输出(通常是终端或命令行窗口)。

2. 输出字符串 "Hi, I'm "。注意,这个字符串后面没有换行符,所以接下来的输出会在同一行。

3. 输出对象 "john" 的 "name" 成员的值,即 "John Doe"。

4. 输出字符串 " and I'm "。同样,这个字符串后面没有换行符。

5. 输出对象 "john" 的 "age" 成员的值,即 22。

6. 输出字符串 " years old." 和一个换行符。这样,下一次的输出将从新的一行开始。

7. 以上所有输出都将连接在一起,并且按照它们出现的顺序发送到标准输出。

所以,整个输出是 "Hi, I'm John Doe and I'm 22 years old.",然后是一个换行。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2023-6-9 17:56:55 | 显示全部楼层
isdkz 发表于 2023-6-9 17:30
执行  john.introduceSelf();  时,以下是步骤的概述:

1. 找到命名为 "john" 的  Person  类型对象。 ...

也就是说成员函数是用来执行的,成员变量是进行初始化的,那构造函数的作用在哪呢
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2023-6-9 18:00:12 | 显示全部楼层
tttttt@@@@@@ 发表于 2023-6-9 17:56
也就是说成员函数是用来执行的,成员变量是进行初始化的,那构造函数的作用在哪呢

是的,你的理解是正确的。成员函数用于执行操作(包括对成员变量进行操作),成员变量是用来存储类的状态或者属性的。现在让我们来谈谈构造函数。

构造函数是一种特殊的成员函数,其名称与类的名称相同,用于初始化类的对象。构造函数在创建对象时被自动调用,常常用于为成员变量设置初始值,或者执行任何其他设置或初始化工作。

在我们的  Person  类例子中,构造函数如下所示:
    Person(string personName, int personAge) {
        name = personName;
        age = personAge;
    }

这个构造函数接受两个参数:一个  string  和一个  int 。在构造函数内部,它将这些参数赋值给相应的成员变量。因此,当你创建一个  Person  类型的对象时,你需要提供这两个参数:
    Person john("John Doe", 22);

在这行代码中, Person  构造函数被调用,并且  "John Doe"  和  22  作为参数传入。这些参数的值被分别赋给  john  对象的  name  和  age  成员变量。

所以,简单来说,构造函数的主要目的是初始化对象的状态。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2023-6-9 18:04:15 | 显示全部楼层
isdkz 发表于 2023-6-9 18:00
是的,你的理解是正确的。成员函数用于执行操作(包括对成员变量进行操作),成员变量是用来存储类的状态 ...

但是这两个参数在成员变量中已经定义了,那  Person(string personName, int personAge) {
      name = personName;  age = personAge; }这个构造函数的作用主要是干嘛呢
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2023-6-9 18:12:19 | 显示全部楼层
tttttt@@@@@@ 发表于 2023-6-9 18:04
但是这两个参数在成员变量中已经定义了,那  Person(string personName, int personAge) {
      name = ...

在C++中,成员变量的定义只是声明了它们的类型和名称,并不会赋予它们实际的值。当我们创建一个类的对象时,我们需要提供一种方式来初始化这些成员变量。这就是构造函数的用处。

构造函数允许我们在创建对象时对成员变量进行初始化。在构造函数内部,我们使用传入的参数来给成员变量赋初值。例如,在我们的  Person  类中,构造函数接收两个参数  personName  和  personAge ,并将它们的值赋给  name  和  age 。

当我们这样做时:
Person john("John Doe", 22);

我们实际上是在做以下几件事情:

1. 创建一个  Person  类型的对象  john 。
2. 调用  Person  类的构造函数,将  "John Doe"  和  22  作为参数传入。
3. 在构造函数内部, "John Doe"  被赋值给  john  对象的  name  成员变量, 22  被赋值给  john  对象的  age  成员变量。

通过这种方式,我们可以确保每个  Person  对象在创建时都已经有了一个  name  和一个  age ,并且我们知道这两个值是什么。否则, name  和  age  就会是未定义的,使用它们可能会导致错误。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2023-6-9 18:22:35 | 显示全部楼层
isdkz 发表于 2023-6-9 18:12
在C++中,成员变量的定义只是声明了它们的类型和名称,并不会赋予它们实际的值。当我们创建一个类的对象 ...

好的明白了谢谢谢谢
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-12-24 10:30

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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