08-C++学习笔记-类与对象

在这里插入图片描述

🔟🔒 08-C++学习笔记-类与对象

在本篇学习笔记中,我们将详细讲解C++中的类与对象的概念和相关知识。类是C++中一种重要的数据类型,它允许我们自定义数据结构和相应的操作。

📚 C++类与对象详细讲解

✨类的概念

类是一种用户自定义的数据类型,它封装了数据和操作这些数据的函数。类可以看作是一种模板或蓝图,用于创建具有相同属性和行为的对象。

✨类的组成

一个类由数据成员和成员函数组成。数据成员用于存储对象的状态,而成员函数用于操作对象的行为。

✨对象的概念

对象是类的实例,是根据类的定义创建的具体变量。通过创建对象,我们可以使用类中定义的数据成员和成员函数。

🏗️ 类的结构

✨ 类的声明

类的声明描述了类的名称和成员,但没有具体的实现。类的声明通常放在头文件中,以便其他源文件可以使用该类。

示例:

// 类的声明
class MyClass {
    // 数据成员
    int num;

    // 成员函数
    void printNum();
};

在上述示例中,我们声明了一个名为MyClass的类,它包含一个整型数据成员num和一个成员函数printNum

✨类的定义

类的定义提供了成员函数的具体实现。类的定义通常放在源文件中,以便将类的声明和定义分离。

示例:

// 类的声明
class MyClass {
    // 数据成员
    int num;

    // 成员函数
    void printNum();
};

// 类的定义
void MyClass::printNum() {
    cout << "Num: " << num << endl;
}

在上述示例中,我们在类的定义中实现了成员函数printNum

👀 类的定义与访问

✨ 类的定义

在C++中,我们可以通过class关键字来定义一个类。类的定义包括类名、数据成员和成员函数。

示例:

class MyClass {
    // 数据成员
    int num;

    // 成员函数
    void printNum();
};

在上述示例中,我们定义了一个名为MyClass的类,它包含一个整型数据成员num和一个成员函数printNum

✨ 类的访问

类的成员可以分为公有成员、私有成员和保护成员。默认情况下,类的成员是私有的,只能在类的内部访问。我们可以使用访问修

饰符来控制类的成员的访问权限。

  • public:公有成员,可以在类的外部和派生类中访问。
  • private:私有成员,只能在类的内部访问。
  • protected:保护成员,可以在类的内部和派生类中访问。

示例:

class MyClass {
public:
    int publicNum;      // 公有成员

private:
    int privateNum;     // 私有成员

protected:
    int protectedNum;   // 保护成员
};

在上述示例中,我们定义了一个类MyClass,其中包含了公有成员publicNum、私有成员privateNum和保护成员protectedNum

🚀 静态成员

✨静态数据成员

静态数据成员是属于整个类而不是类的具体对象的成员。它在类的所有对象中共享相同的值。

示例:

class MyClass {
public:
    static int count;   // 静态数据成员
};

int MyClass::count = 0;   // 静态数据成员的初始化

int main() {
    MyClass::count++;    // 使用类名访问静态数据成员
    cout << "Count: " << MyClass::count << endl;

    return 0;
}

在上述示例中,我们定义了一个静态数据成员count,并在main函数中使用类名访问并修改了该静态数据成员的值。

✨静态成员函数

静态成员函数属于整个类而不是类的具体对象,它可以在没有类的对象的情况下被调用。

示例:

class MyClass {
public:
    static void printMessage() {
        cout << "Hello, world!" << endl;
    }
};

int main() {
    MyClass::printMessage();   // 使用类名调用静态成员函数

    return 0;
}

在上述示例中,我们定义了一个静态成员函数printMessage,并在main函数中使用类名调用了该静态成员函数。

🏗️ 构造函数与析构函数

✨构造函数

构造函数是一种特殊的成员函数,它在创建对象时被调用,用于初始化对象的数据成员。构造函数的名称与类名相同,没有返回类型,可以有参数。

示例:

class MyClass {
public:
    // 默认构造函数
    MyClass() {
        cout << "Default constructor called." << endl;
    }

    // 带参数的构造函数
    MyClass(int n) {
        cout << "Constructor with parameter called. Value: " << n << endl;
    }
};

int main() {
    MyClass obj1;       // 调用默认构造函数
    MyClass obj2(10);   // 调用带参数的构造函数

    return 0

;
}

在上述示例中,我们定义了一个类MyClass,并在其中定义了默认构造函数和带参数的构造函数。在main函数中创建了两个对象,分别调用了不同的构造函数。

✨析构函数

析构函数是一种特殊的成员函数,它在对象被销毁时自动调用,用于清理对象分配的资源。析构函数的名称与类名相同,前面加上波浪号(~),没有返回类型,不接受任何参数。

示例:

class MyClass {
public:
    // 析构函数
    ~MyClass() {
        cout << "Destructor called." << endl;
    }
};

int main() {
    MyClass obj;    // 创建对象

    return 0;       // 对象被销毁,调用析构函数
}

在上述示例中,我们定义了一个类MyClass,其中包含了一个析构函数。在main函数中创建了一个对象,在程序结束时,该对象被销毁,调用了析构函数。

🔄 复制构造函数

复制构造函数是一种特殊的构造函数,用于创建一个新对象,并将其初始化为与另一个同类对象相同的值。

示例:

class MyClass {
public:
    int value;

    // 复制构造函数
    MyClass(const MyClass& other) {
        value = other.value;
    }
};

int main() {
    MyClass obj1;
    obj1.value = 10;

    MyClass obj2(obj1);   // 使用复制构造函数创建新对象并初始化

    cout << "Value of obj2: " << obj2.value << endl;

    return 0;
}

在上述示例中,我们定义了一个类MyClass,其中包含了一个复制构造函数。在main函数中创建了一个对象obj1,并将其值设置为10。然后,使用复制构造函数创建了一个新对象obj2,并将其值初始化为obj1的值。

这样,我们就完成了对C++类与对象的详细讲解。掌握了类的概念、类的结构、类的定义与访问、静态成员、构造函数与析构函数以及复制构造函数等重要知识点。通过合理地使用类与对象,我们可以更好地组织和管理代码,实现模块化编程的思想。

🔎 总结

在本篇学习笔记中,我们深入学习了C++中的类与对象。我们了解了类的概念、类的结构、类的定义与访问、静态成员、构造函数与析构函数以及复制构造函数等重要内容。通过合理地使用类与对象,我们可以提高代码的可读性、可维护性和复用性。掌握这些知识,将有助于我们更加灵活和高效地

使用C++进行编程。

希望本篇学习笔记对你的学习有所帮助!如果有任何疑问,欢迎继续探索更多关于C++类与对象的知识。祝你在编程的道路上取得更大的进步!🚀

⭐️希望本篇文章对你有所帮助。

⭐️如果你有任何问题或疑惑,请随时向提问。

⭐️感谢阅读!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

逸峰轻云

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值