小工具知识网

当前位置: 首页 > 行业知识 > 剖析【C++】——类与对象(中)——小白篇—超详解

行业知识

剖析【C++】——类与对象(中)——小白篇—超详解

2026-11-01 12:59:48 来源:互联网转载

 

目录

1.类的6个默认成员函数:

1. 默认构造函数(Default Constructor)

2. 析构函数(Destructor)

3. 拷贝构造函数(Copy Constructor)

4. 拷贝赋值运算符(Copy Assignment Operator)

5. 移动构造函数(Move Constructor)

2.构造函数详解

2.1 构造函数的概念

示例类:Date

2.2 构造函数的特性

示例代码:构造函数重载

使用构造函数

编译器生成的默认构造函数

C++11中的改进

总结

3.析构函数详解

3.1 析构函数的概念

示例类:Date

3.2 析构函数的特性

示例代码:编译器自动生成的析构函数

资源管理示例:Stack类

总结

4.拷贝构造函数详解

4.1 拷贝构造函数的概念

示例类:Date

4.2 拷贝构造函数的特征

浅拷贝与深拷贝

示例代码:浅拷贝与深拷贝

拷贝构造函数的典型调用场景

总结

5.赋值运算符重载详解

5.1 运算符重载概述

示例:运算符重载函数原型

5.2 赋值运算符重载

赋值运算符重载格式

示例类:Stack

赋值运算符重载的注意事项

前置++和后置++重载

示例代码:前置和后置自增运算符重载

总结

6.日期类的实现

1. 定义Date类

2. 详细解析每个部分

2.1 构造函数

2.2 拷贝构造函数

2.3 赋值运算符重载

2.4 析构函数

2.5 显示日期

7.深度剖析C++中的const成员函数

问题1: const对象可以调用非const成员函数吗?

问题2: 非const对象可以调用const成员函数吗?

问题3: const成员函数内可以调用其它的非const成员函数吗?

问题4: 非const成员函数内可以调用其它的const成员函数吗?

示例代码

解释

构造函数和成员变量

非const成员函数

const成员函数

非const成员函数调用const成员函数

const成员函数尝试调用非const成员函数

main函数示例

8.取地址及const取地址操作符重载

1. 取地址运算符(&)

2. const取地址运算符

示例代码

代码解释

运行示例


1.类的6个默认成员函数:

在C++中,即使一个类没有定义任何成员或成员函数,编译器仍会为其生成以下6个默认成员函数。下面是对这些默认成员函数的简易分析和代码示例。

1. 默认构造函数(Default Constructor)

默认构造函数在创建对象时被调用。如果类中没有定义任何构造函数,编译器会自动生成一个默认的无参构造函数。

class MyClass {    // 编译器会生成一个默认构造函数};MyClass obj; // 调用默认构造函数
2. 析构函数(Destructor)

析构函数在对象被销毁时调用。编译器会生成一个默认的析构函数来清理资源。

class MyClass {    // 编译器会生成一个默认析构函数};{    MyClass obj; // 析构函数在作用域结束时被调用}
3. 拷贝构造函数(Copy Constructor)

拷贝构造函数用于创建一个新的对象作为现有对象的副本。如果没有定义拷贝构造函数,编译器会生成一个默认的。

class MyClass {    // 编译器会生成一个默认的拷贝构造函数};MyClass obj1;MyClass obj2 = obj1; // 调用默认拷贝构造函数
4. 拷贝赋值运算符(Copy Assignment Operator)

拷贝赋值运算符用于将一个对象的值赋给另一个对象。如果没有定义拷贝赋值运算符,编译器会生成一个默认的。

class MyClass {    // 编译器会生成一个默认的拷贝赋值运算符};MyClass obj1;MyClass obj2;obj2 = obj1; // 调用默认拷贝赋值运算符
5. 移动构造函数(Move Constructor)

移动构造函数在C++11中引入,用于从一个临时对象中“偷取”资源。如果没有定义移动构造函数,编译器会生成一个默认的。

class MyClass {    // 编译器会生成一个默认的移动构造函数};MyClass obj1;MyClass obj2 = std::move(obj1); // 调用默认移动构造函数

2.构造函数详解

构造函数是C++中的一个重要概念,它使对象在创建时自动初始化。以下是对构造函数的详细解释和代码示例,帮助初学者深入理解其原理和使用方法。

2.1 构造函数的概念

构造函数是一个特殊的成员函数,名字与类名相同。当创建类类型对象时,编译器会自动调用构造函数,以保证每个数据成员都有一个合适的初始值,并且在对象的整个生命周期内只调用一次。

示例类:Date

假设我们有一个 Date 类,需要在创建对象时设置日期信息。

class Date {public:    Date(int year, int month, int day) { // 构造函数        _year = year;        _month = month;        _day = day;    }        void display() {        std::cout 

上一篇:时间戳格式化全解析,轻松成为转换高手!

下一篇:揭秘喝酒出汗背后的真相,出汗原因深度解析!