![](https://img-blog.csdnimg.cn/20201014180756916.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
c++
文章平均质量分 56
chenshida_
这个作者很懒,什么都没留下…
展开
-
c++面向对象总结
c++面向对象总结什么是面向对象?面向对象的三大特性重写和重载的区别隐藏和重写,重载的区别什么是面向对象?面向对象的三大特性面向对象:对象是指具体的某一个事物,这些事物的抽象就是类,类中包含数据(成员变量)和动作(成员方法)。面向对象的三大特性:封装:将具体的实现过程和数据封装成一个函数,只能通过接口进行访问,降低耦合性。继承:子类继承父类的特征和行为,子类有父类的非 private 方法或成员变量,子类可以对父类的方法进行重写,增强了类之间的耦合性,但是当父类中的成员变量、成员函数或者类本身被原创 2021-07-21 09:39:28 · 120 阅读 · 0 评论 -
c++智能指针
c++智能指针简介具体使用使用智能指针可能出现的问题简介c++没有自动回收的机制,需要程序猿new一个空间,同时delete掉一个空间,免的造成内存的泄露。智能指针就能有效的解决这一问题。具体使用对于编译器来说,智能指针实际上是一个栈对象,并非指针类型,在栈对象生命期即将结束时,智能指针通过析构函数释放有它管理的堆内存。所有智能指针都重载了“operator->”操作符,直接返回对象的引用,用以操作对象。访问智能指针原来的方法则使用“.”操作符。C++11 中智能指针包括以下三种:C++原创 2021-07-19 07:53:16 · 77 阅读 · 0 评论 -
c++类对象的创建方式
对象创建限制在堆或栈c++类对象的创建方式对象创建限制在堆或栈C++ 中的类的对象的建立模式如何将类限制在堆上呢?C++ 中的类的对象的建立模式C++ 中的类的对象的建立模式分为两张:静态建立,动态建立静态建立:由编译器为对象在栈空间上分配内存,直接调用类的构造函数创建对象。例如:A a;动态建立:使用 new 关键字在堆空间上创建对象,底层首先调用 operator new() 函数,在堆空间上寻找合适的内存并分配;然后,调用类的构造函数创建对象。例如:A *p = new A();如何将原创 2021-07-17 23:21:00 · 1400 阅读 · 0 评论 -
变量之间的区别
全局变量、局部变量、静态全局变量、静态局部变量的区别c++变量根据定义具有不同的生命周期,会有不同的作用域,主要有六个作用域:全局作用域,局部作用域,文件作用域,类作用域,语句作用域,命名空间作用域。从作用域看:全局变量:具有全局作用域,全局变量只需在一个源文件定义,就能在所有的文件中使用。在不含有该全局变量的文件中使用时,需要用extern的关键字声明这个变量静态全局变量:具有文件作用域,它只作用域定义该变量的文件中,不能作用域其他文件。**局部变量:**具有局部作用域,在程序运行期间并不是一直原创 2021-07-16 11:27:23 · 363 阅读 · 0 评论 -
c++内存管理
c++内存分区:堆、栈、全局/静态存储区、常量区、代码区栈:存放函数的局部变量、函数参数、函数返回地址等,由编译器自动分配和释放堆:动态申请的内存空间,可以有malloc函数来申请,通常需要程序员通过free释放,如果程序执行结束还释放,由操作系统来自动回收全局/静态存储区(.bss段和.data段):存放全局变量和静态变量,程序执行结束自动释放,未初始化的放在.bss段,初始化的放在.data段常量区(.data段):存放是常量,不可以被修改,程序运行结束自动释放代码区:存放代码,不可以被修改,原创 2021-07-16 08:05:22 · 109 阅读 · 0 评论 -
c++程序编译过程
c++程序编译分成四个过程:编译预处理,编译,汇编,链接编译预处理:处理以#为开头编译:将.cpp文件翻译成.s汇编文件汇编:将.s汇编文件翻译成机器指令.o文件链接:汇编生产的目标文件.o文件,并不会立即执行,因为可能会出现.cpp文件中的函数会引用到某个库的函数或者另一个文件中定义的符号,链接的目的是将这些文件对于的目标文件连接成一个整体,从而生成可执行文件整体流程:链接分为两种:静态链接:静态链接是在链接阶段,将源代码中用到的库函数与汇编生成的目标文件.o合并生成可执行文件动态链接:原创 2021-07-15 23:45:21 · 265 阅读 · 1 评论