C++
文章平均质量分 74
vitobo
念念不忘,必有回响
展开
-
C/C++内存管理(new,delete)详解
动态内存管理一,C/C++内存分布二,C语言中动态内存管理方式1.malloc/calloc/realloc这三个方法之间的区别??三,C++中动态内存管理四,new和delete的实现原理1.内置类型2.自定义类型五,定位new表达式一,C/C++内存分布1.内核空间:放的是与操作系统相关的代码,用户没有权限直接去操作;如果要操作,只能通过指定的api函数进行。2.栈:存放与函数调用相关的一些数据;栈帧:函数的参数,函数体中的局部变量,一些寄存器信息。特性:函数调用完成之后,对应的栈帧就被回原创 2021-01-08 16:55:06 · 494 阅读 · 0 评论 -
C++中static成员及其作用域
这里写目录标题一,面向过程中的static1.静态全局变量2.静态局部变量3.静态函数二,面向对象中的static关键字(类中的static关键字)1.静态成员变量2.普通成员变量3.静态成员函数4.普通函数一,面向过程中的static1.静态全局变量在全局变量前,加上关键字static,该变量就定义成为一个静态全局变量static int n = 5; //静态全局变量int m = 3; //全局变量,默认为externint main(){ printf("%d\n",n);原创 2021-01-06 17:29:58 · 2914 阅读 · 5 评论 -
类的六个默认成员函数学习
类的六个默认成员函数一,构造函数二,析构函数三,拷贝构造函数四,赋值操作符重载五,取地址操作符重载六,const修饰的取地址操作符重载什么是默认成员函数?默认成员函数就是 : 你不实现,编译器就会给你实现一份,因为在类中含有默认的六个成员函数。一,构造函数构造函数是一个特殊的成员函数,名字与类名相同,无返回值,创建类类型对象时由编译器自动调用,保证每个数据成员都有一个合适的初识值,并且在对象的生命周期内只调用一次。类名(参数列表){ 函数体;};特性:1.构造函数的虽然名称叫构原创 2021-01-02 19:39:50 · 297 阅读 · 1 评论 -
C++中引用的分析
@引用详解引用概念引用:引用就是给变量取别名,编译器不会为引用变量开辟内存空间,它和它引用的变量共用同一块内存。例如:高中同学给我起的外号:疙瘩。疙瘩是我,我也是我类型& 引用变量名(对象命)=引用实体void test(){ int a=10; int& ra=a; // 定义引用类型 return 0;}引用特性1.引用在定义时必须初始化int& r; // 编译时会出错2.一个变量可以有多个引用int a=10;int&原创 2020-12-30 18:53:53 · 142 阅读 · 0 评论 -
C++类中const成员函数与非const成员函数的调用规则
const修饰类的成员函数将const修饰的类成员函数称之为const成员函数,const修饰类成员函数,实际修饰该成员函数隐含的this指针,表明在成员函数中不能对类的任何成员进行修改。1.const对象可以调用非const成员函数吗?2.非const对象可以调用const成员函数吗?3.const成员函数内可以调用其它的非const成员函数吗?4.非const成员函数内可以调用其它的const成员函数吗?总结调用的依据其实是传隐含的this指针的过程;在使用const 的时原创 2020-05-19 23:53:25 · 2906 阅读 · 0 评论 -
为什么C++支持函数重载,而C语言不支持函数重载?
函数重载: C++允许在同一作用域中声明几个功能类似的同名函数,这些同名函数的形参列表(参数个数 或 类型 或 顺序)必须不同,常用来处理实现功能类似数据类型不同的问题。C/C++中程序运行起来,需要经历一下几个阶段:在链接时,面对Add函数,func函数,每个编译器都有自己的函数名修饰规则。连接器会使用哪个名字去找呢?下面通过在Linux下gcc和g++的修饰规则,演示这个修饰后的名字采用C语言编译器编译后结果结论:在Linux下,采用gcc编译完成后,函数修饰后名字不变。采用C++编原创 2020-05-13 22:12:44 · 862 阅读 · 0 评论