- 博客(14)
- 收藏
- 关注
原创 C++——拷贝构造函数
拷贝构造函数是C++中用已有对象初始化新对象的特殊构造函数。当类未显式定义时,编译器会生成浅拷贝版本,仅复制成员变量值。对于包含指针并管理动态内存的类,浅拷贝会导致多个对象共享内存、重复释放等问题。解决方案是自定义深拷贝构造函数:重新分配内存并复制内容,确保每个对象拥有独立资源。实现要点包括const引用参数、新内存分配和内容复制。
2025-07-04 21:46:53
1166
原创 C++——动态内存管理
C++动态内存管理:new和delete操作:new和delete是C++中用于动态内存管理的核心运算符。new用于在堆区分配内存并自动调用构造函数,返回类型正确的指针;delete释放内存时自动调用析构函数。相比C的malloc/free,它们具有类型安全、自动计算内存、支持构造/析构等优势。文章详细介绍了基本数据类型和对象的分配/释放语法,包括数组处理。
2025-07-04 21:36:20
469
原创 C++——析构函数
C++析构函数是类中与构造函数对应的特殊成员函数,用于对象生命周期结束时自动执行资源清理。其核心功能包括释放资源(内存、文件等)、进行善后处理,确保资源不会泄漏。相比C语言的手动资源管理,析构函数提供了自动调用、异常安全等优势。语法上,析构函数以波浪号(~)加类名命名,无返回值、无参数且不可重载。
2025-07-04 21:26:57
284
原创 C++——构造函数
C++构造函数是类中特殊的成员函数,用于对象初始化。相比C语言结构体初始化,构造函数具有自动执行、支持重载和默认参数等优势。语法上构造函数必须与类同名且无返回值,推荐使用初始化列表进行高效初始化。构造函数类型包括默认构造、委托构造和移动构造等,可通过explicit关键字防止隐式转换。文中以Car类为例,展示了构造函数重载、默认参数和初始化列表的实际应用,体现了构造函数在资源管理和代码简化方面的重要作用。
2025-07-04 21:22:53
1220
原创 C++——基础语法
本文介绍了C++编程基础要点:1. 程序编写:2. 编译方式3. 头文件包含4. 输入输出5. 命名空间6. 引用:别名特性与指针区别;7. 缺省参数:右至左默认值规则;8. 函数重载:参数个数/类型/顺序的区分依据,精确匹配优先级
2025-07-04 20:57:54
1246
原创 C++——类与对象
C++,类的基本概念:类的定义与声明;类的成员:数据成员与成员函数;访问权限(public、private、protected)对象的创建与使用:对象的定义与初始化;访问对象的成员;
2025-07-04 20:35:12
835
原创 C++——环境搭建
C++开发环境搭建指南: Windows系统推荐使用VSCode+MinGW或Visual Studio Linux系统建议配置VSCode+g++或QtCreator。安装步骤包括:1)下载VSCode和编译器(Windows需MinGW,Linux用g++);2)配置环境变量(Windows需特别注意路径空格问题);3)验证安装。Linux用户可通过apt命令安装完整开发工具链。IDE选择方面,Visual Studio和QtCreator功能全面但占用内存较大,适合配置较高的设备。
2025-07-04 19:33:24
494
原创 C语言——标准输入输出、类型转换、可移植整型
- scanf() 与 printf() 不同,scanf() 的格式控制串不可乱写,尤其是结尾处的 \n- 用户必须完全按照 scanf() 中描述的输入格式控制串来输入数据,否则将出错。:- scanf() 的返回值,代表成功从键盘读取的数据的个数- 无法匹配 scanf() 指定格式的数据,将被遗留在输入缓冲区中,不会消失。// 格式化输入函数(跟printf函数相似配套的)getchar();// 从 stdin 读取一个字符。
2025-01-13 21:50:23
424
原创 内存运算,数据越界问题
问题一:char类型是signed char 类型,取值范围是 -128到127,问打印出来是多少,为什么?1、如果赋值的是正数:赋予的值 - 这个变量的无符号数据类型的范围的值。2、如果赋值的是负数,赋予的值 + 这个变量的无符号数据类型的范围的值。如果该变量赋予的值,超过了这个变量的数据类型的范围,那么。
2025-01-11 10:13:27
182
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅
1