03 2022 档案
摘要:初始化列表 作用: C++提供了初始化列表语法,用来初始化属性 语法:构造函数():属性1(值1),属性2(值2)... {} 示例: class Person { public: ////传统方式初始化 //Person(int a, int b, int c) { // m_A = a; //
阅读全文
摘要:深拷贝与浅拷贝 浅拷贝:简单的赋值拷贝操作,或者说编译器自己生成的默认拷贝函数 深拷贝:在堆区重新申请空间,进行拷贝操作 class Person { public: //无参(默认)构造函数 Person() { cout << "无参构造函数!" << endl; } //有参构造函数 Pers
阅读全文
摘要:对象的初始化和清理 生活中我们买的电子产品都基本会有出厂设置,在某一天我们不用时候也会删除一些自己信息数据保证安全 C++中的面向对象来源于生活,每个对象也都会有初始设置以及 对象销毁前的清理数据的设置。 1 构造函数和析构函数 对象的初始化和清理也是两个非常重要的安全问题 一个对象或者变量没有
阅读全文
摘要:1 函数默认参数 在C++中,函数的形参列表中的形参是可以有默认值的。 语法: 返回值类型 函数名 (参数= 默认值){} 1. 如果某个位置参数有默认值,那么从这个位置往后,从左向右,必须都要有默认值 2. 如果函数声明有默认值,函数实现的时候就不能有默认参数 int func(int a, in
阅读全文
摘要:1 引用的基本使用 **作用: **给变量起别名 语法: 数据类型 &别名 = 原名 int main() { int a = 10; int &b = a; cout << "a = " << a << endl; cout << "b = " << b << endl; b = 100; cou
阅读全文
摘要:new操作符 C++中利用==new==操作符在堆区开辟数据 堆区开辟的数据,由程序员手动开辟,手动释放,释放利用操作符 ==delete== 语法: new 数据类型 利用new创建的数据,会返回该数据对应的类型的指针 int* func() { int* a = new int(
阅读全文
摘要:1 内存分区模型 C++程序在执行时,将内存大方向划分为4个区域 代码区:存放函数体的二进制代码,由操作系统进行管理的 全局区:存放全局变量和静态变量以及常量 栈区:由编译器自动分配释放, 存放函数的参数值,局部变量等 堆区:由程序员分配和释放,若程序员不释放,程序结束时由操作系统回收 内存四区意义
阅读全文
摘要:1 结构体基本概念 结构体属于用户==自定义的数据类型==,允许用户存储不同的数据类型,不同于内置的类似于int,string这些数据类型。 2 结构体定义和使用 语法:struct 结构体名 { 结构体成员列表 }; 通过结构体创建变量的方式有三种: struct 结构体名 变量名 struct
阅读全文
摘要:指针和函数 **作用:**利用指针作函数参数,可以修改实参的值 //值传递 void swap1(int a ,int b) { int temp = a; a = b; b = temp; } //地址传递 void swap2(int * p1, int *p2) { int temp = *p
阅读全文
摘要:指针和数组 **作用:**利用指针访问数组中元素 **示例:** int main() { int arr[] = { 1,2,3,4,5,6,7,8,9,10 }; int * p = arr; //指向数组的指针 cout << "第一个元素: " << arr[0] << endl; cout
阅读全文
摘要:浅谈类对象和类指针 为什么C++中只有指针和引用才能实现多态?
阅读全文
摘要:const修饰指针有三种情况 const修饰指针 常量指针 比如下面例子: int a = 10; int b = 10; //const修饰的是指针,指针指向可以改,指针指向的值不可以更改 const int * p1 = &a; p1 = &b; //正确,指针的地址可以更改 *p1 = 100
阅读全文