c++
YANG_1605
兢兢业业做事,踏踏实实做人,不忘初心,继续前进
展开
-
C++中的单例模式
1.什么叫单例模式?单例模式也称为单件模式、单子模式,可能是使用最广泛的设计模式。其意图是保证一个类仅有一个实例,并提供一个访问它的全局访问点,该实例被所有程序模块共享。简单理解就是让类只生成一个对象。通过单例模式, 可以做到:(1)确保一个类只有一个实例被建立(2)提供了一个对对象的全局访问指针(3)在不影响单例类的客户端的情况下允许将来有多个实例2.怎样实现单例模式...原创 2018-12-04 21:49:27 · 208 阅读 · 1 评论 -
static在c和c++中的用法
static关键字作用有两种:1.限定作用域;2.保持变量内容持久化;C语言中static的用法:(1)在函数体,一个被声明为静态的变量在这一函数被调用过程中维持基值不变;(2)在模块内(但在函数体外),一个被声明为静态的变量可以被模块内所有的函数访问,但不能被模块外其他函数访问。它是一个本地的全局变量。(3)在模块内,一个被声明为静态的函数只可被这一模块内其他的函数调用。也就...原创 2019-08-22 19:40:05 · 320 阅读 · 0 评论 -
const在c和c++中的用法
C中const的用法总结起来主要分为以下两种:1、在定义变量时使用(由于const常量在定义后不能被修改,所以在定义时一定要进行初始化操作):a)最简单的用法,说明变量为一个常变量(在以下例子里,int和const的先后顺序可以改变的,这无所谓):const int a=100;int const b=100;b)说明指针为指向常数的指针,即指针本身的值是可...原创 2019-08-22 18:05:51 · 167 阅读 · 0 评论 -
C++------this指针的认识
C++类中this指针的理解1、this指针的概念 一个对象的this指针并不是对象本身的一部分,不会影响sizeof(对象)的结果。this作用域是在类内部,当在类的非静态成员函数中访问类的非静态成员的时候,编译器会自动将对象本身的地址作为一个隐含参数传递给函数。也就是说,即使你没有写上this指针,编译器在编译的时候也是加上this的,它作为非静态成员函数的隐含形参,对各成...原创 2019-08-22 17:52:53 · 147 阅读 · 0 评论 -
C++三大特性之------封装
面向对象的三个基本特征是:封装、继承、多态。其中,封装可以隐藏实现细节,使得代码模块化;继承可以扩展已存在的代码模块(类);它们的目的都是为了——代码重用。而多态则是为了实现另一个目的——接口重用!我们今天就来认识封装有关的知识。在C++中,类封装通常分为下边两个部分 -类的实现细节 -类的使用方式 在我们使用别人提供的类时,我们只关注于如...原创 2019-08-22 16:50:36 · 177 阅读 · 0 评论 -
C++-------OOP思想
比如:人为实体。人的属性则有:年龄、性别、职业、身高等。人的行为:跑步、走路、吃饭等。抽象成数据类型:人的属性可以使用变量、结构体变量进行表示,行为则可以通过函数体来进行描述。属性抽象为类中的成员变量,行为抽象为类中的成员方法。类通过实例化生成对象,对象可以使用类中的成员方法,与现实中的实体行为相互对应,模拟了现实中的实体。...原创 2019-08-22 11:53:41 · 137 阅读 · 0 评论 -
浅谈c++三大特性之------继承
一、前言 继承机制,可以利用已有的数据类型来定义新的数据类型。所定义的新的数据类型不仅拥有新定义的成员,而且还同时拥有旧的成员。二、继承定义 在c++语言中,我们称已存在用来派生新类的类称为基类,也称为父类。由基类派生出来的新类称为派生类,也称作子类。一个派生类可以从一个类中派生,也可以从多个类中派生。从一个基类中派生的继承称为单继承,从多个基类中派生的继承...原创 2019-08-23 16:11:44 · 193 阅读 · 0 评论 -
c++中引用与指针的区别
联系指针是指向一块内存地址的变量,这个变量可以指向其他地址;引用是一个变量的别名,只能是一个变量的别名。一个变量的引用可以转为指向它的指针。不同1、指针是一个实体,需要分配内存空间。引用只是变量的别名,不需要分配内存空间。2、引用在定义的时候必须进行初始化,并且不能够改变。指针在定义的时候不一定要初始化,并且指向的空间可变。(注:不能有引用的值不能为NULL)3、有多级指针,...原创 2019-08-14 20:39:42 · 215 阅读 · 0 评论 -
c/c++函数符号的生成规则
函数符号(函数的名字修饰):是编译器在编译期间创建的一个字符串,用来指明函数的定义或原型。C和C++程序的函数在内部使用不同的名字修饰方式,下来就来进行详细的介绍:1、C编译器的函数名修饰规则__cdecl调用约定(c标准调用约定):仅在输出函数名前加上一个下划线前缀,例如_sum。__stdcall调用约定(windows标准调用约定):编译器和链接器会在输出函数名前加上一个下...原创 2019-08-14 20:08:52 · 880 阅读 · 0 评论 -
知识总结(static、gcc与g++、静态库与共享库、深浅拷贝)
1.static关键字的作用?(1)定义全局变量时加上static关键字修饰,表明该全局变量为静态全局变量,作用域为当前文件;(2)函数定义或声明时加static 关键字修饰,为静态函数,只能在本文件中被调用;(3)定义局部变量时,用static关键字表示其为静态局部变量,只被初始化一次,之后每次调用函数时,该变量值为上次函数退出时的值。2.gcc与g++的区别?(1)对...原创 2019-07-19 15:40:12 · 1084 阅读 · 2 评论 -
编译 链接 运行原理
一、虚拟地址空间的认识我们通常在说计算机的32位、64位操作系统,其实说的是ALU的宽度,即一次性能处理最大数据长度(比特为单位);在Windows操作系统下4G虚拟内存空间是,用户空间:内核空间是1:1在Linux操作系统下4G虚拟内存空间是,用户空间:内核空间是3:1Linux4G虚拟地址空间分配大致如下图:二、编译预编译生成.i文件命令:gcc -E mai...原创 2018-11-25 20:10:14 · 148 阅读 · 0 评论 -
C++基础知识概述
一、函数的默认值(1)默认值必须写在函数声明中;(2)自右向左一次赋值;(3)默认值赋值只能赋值一次,否则会报错;(4)默认值不能使用局部变量,可使用全局变量。二、函数重载重载的定义: 函数重载是指在同一作用域内,可以有一组具有相同函数名,不同参数列表的函数,这组函数被称为重载函数。重载函数通常用来命名一组功能相似的函数,这样做减少了函数名的数量,避免了名...原创 2018-11-26 19:24:11 · 186 阅读 · 0 评论 -
c++类和类的封装
1.类和类成员C++提供了如char、int、long、float、double等基本数据类型,足够用来解决大多数哦相对简单的问题,但对于复杂的问题就比较困难了。C++的一个实用特性是自定义数据类型;如之前的枚举和结构体: struct Goods{ char* mname; float mprice; int mamount;}struct 类中默认访问限定符是公有的...原创 2018-11-28 15:29:56 · 386 阅读 · 0 评论 -
浅谈c++特性之------多态
(1):解释多态性:函数的多种不同的实现方式即为多态(2):必要性在继承中,有时候基类的一些函数在派生类中也是有用的,但是功能不够全或者两者的功能实现方式就是不一样的,这个时候就希望重载那个基类的函数,但是为了不再调用这个函数时,出现不知道调用基类的还是子类的情况出现,于是就提出了多态。如果语言不知多态,则不能称为面向对象的。(3):多态性是如何实现的多态是实现是依赖于虚函数来...原创 2019-08-31 13:50:09 · 188 阅读 · 0 评论