C++
文章平均质量分 67
MereX
这个作者很懒,什么都没留下…
展开
-
C++学习笔记(三)
复合类型( 下)://结构体、共用体和枚举1.结构体S有两个成员, S a 与 S b,可以直接用a=b 的方法给a赋值。2.结构中的位字段: 结构体中的成员被指定位数。字段类型要求为整型或枚举型,然后是冒号和所指定使用的位数。每个成员都被称为位字段。形如: struct torgle_register { unsigned int SN:4;//占4位...原创 2018-09-11 14:24:50 · 176 阅读 · 0 评论 -
C++学习笔记(八)
类、类的构造函数和析构函数、this指针、对象数组 1.C++区别于C语言的面向对象特性:抽象、封装和数据隐藏、多态、继承、代码的可重用性2.封装:将实现细节放在一起并将它们与抽象分开。3.数据隐藏(将数据放在类的私有部分中)是一种封装。数据隐藏可以是数据变的安全,同时使得类的用户无需关心数据是被如何表示的。4.类对象默认访问控制类型为私有(即未显示声明的变量默认为私有)。...原创 2018-10-29 21:53:20 · 190 阅读 · 0 评论 -
C++学习笔记(九)
操作符重载、友元函数、类的强制转换 1.将某个函数改为重载操作符的函数只要将函数名替换为operator+()即可 如:Time Sum(const Time & t)const 改为Time operator+(const Time & t)const 调用时可以如 total = coding.operator+(fixing); //co...原创 2018-11-03 20:08:04 · 146 阅读 · 0 评论 -
C++学习笔记(十)
拷贝构造函数、深拷贝与浅拷贝、何时返回何种对象 1.字符串并不保存在对象中,而是单独保存在堆内存中,对象仅保存了指向字符串地址的指针。因此在构造函数中如果用new初始化字符串内存后,需要将构造函数参数传入的字符串用strcpy函数复制到new出的内存中去,而不能直接指针赋值,这样只是保存了它的地址。2.删除对象删除的是对象本身占用的内存,析构函数是释放属于对象成员的指针指向的内存。因此...原创 2018-11-11 19:43:02 · 200 阅读 · 0 评论 -
C++学习笔记(十一)
基类与派生类、多态公有继承、虚函数的重载与重写、protected、抽象基类(ABC)1.派生类与基类: 派生类对象存储了基类的数据成员和方法(即继承了基类的实现和接口),派生类需要自己添加新的构造和额外的数据成员即成员函数。 派生类的构造函数必须给新成员和继承的成员提供数据。2.派生类构造函数要点: 基类对象首先被创建,派生类构造函数应通过成员初始化列表将基...原创 2018-11-15 20:40:25 · 278 阅读 · 0 评论 -
C++学习笔记(十二)
私有继承、类模板1.私有继承的派生类,基类的公有和保护成员都将成为派生类的私有成员,因此基类方法将不会称为派生对象公有接口的一部分,但可以在派生类的成员函数中使用它们。(即不继承接口),因此私有继承可以用于实现has-a关系。2.has-a关系中一个类可以从多个类派生出来,这种继承叫多类继承3.类模板的定义template <typename Type>如typed...原创 2019-01-07 14:18:08 · 146 阅读 · 0 评论 -
简单文件输入/输出
1.使用文件输出的主要步骤: (1)包含头文件fstream; (2)创建一个ofstream对象; (3)将该ofstream对象同一个文章关联起来——open(); (4)就像使用cout的方法使用ofstream——可以使用ofstream对象和>>来输入各种类型的数据; (5)使用完毕后关闭文件——close();2...原创 2019-03-08 15:09:29 · 241 阅读 · 0 评论 -
C++中4个与类型转换相关的关键字
C++中4个与类型转换相关的关键字,分别是static_cast,reinterpret_cast,dynamic_cast,const_cast其中static_cast用于相关联的类型转换,即内置的基本类型,如Int转成double类型等reinterpret_cast用于相关或不相关类型转换,如指针与指针之间或整型与指针之间等(尽量少用,不安全)dynamic_cast 可...转载 2019-03-27 20:49:07 · 400 阅读 · 0 评论 -
STL之hashmap
文章转自https://blog.csdn.net/ddkxddkx/article/details...转载 2019-07-01 09:31:42 · 984 阅读 · 0 评论 -
codeblock配置遇到的问题
1.找不到编译器,codeblock自带编译器在MinGW,如果没有,就自己下载一个然后再计算机--右键--属性--高级系统配置--环境变量Path中加入MinGW的路径(分号分隔)新建环境变量LIBRARY_PATH放置MinGW\bin的路径新建环境变量C_INCLUDE_PATH放置MinGW\include的路径设置好后打开codeblocks--Settings--C...原创 2018-10-31 10:13:33 · 886 阅读 · 0 评论 -
C++学习笔记(六)
内联函数、引用1.内联函数: 普通函数执行到函数调用指令时,程序将在函数调用后立即存储该指令的内存地址,并将函数参数复制到堆栈,跳到标记函数起点的内存单元,执行函数代码然后跳回到地址被保存的指令处。 而内联函数的编译代码与其他程序代码不同之处在于:编译器将使用相应的函数代码替换函数调用。对于内联函数代码,程序无需跳到另一个位置处执行代码然后再跳回来。 优点:运行速度比...原创 2018-10-17 09:06:12 · 260 阅读 · 0 评论 -
int与unsigned等转换(转)
1、隐式转换 C在以下四种情况下会进行隐式转换: 1、算术运算式中,低类型能够转换为高类型。  转载 2018-09-11 15:05:09 · 31912 阅读 · 0 评论 -
C++ 学习笔记(一)
处理数据:(1)整型:char short int long 在系统中的最大长度见头文件climits(ANSI C 中Limits.h 的C++版本)详细见:http://www.cplusplus.com/reference/climits/,其中部分注解如下:CHAR_BIT char的位数 SCHAR_MIN signed char的最小值 UCHAR_MA...原创 2018-09-05 19:31:04 · 171 阅读 · 0 评论 -
C++学习笔记(二)
复合类型(上)://数组与字符串1.不能讲一个数组赋给另一个数组2.如果 long total[500] = {0}; 则其中所有的元素都会被置为0; 如果 long total[500] = {1};则其中只有第一个元素为1,其他元素被编译器置为0;3.将字符数组初始化为字符串的方法——字符串常量(用引号括起字符串): char bird[10]="Mr.X"; c...原创 2018-09-10 20:04:51 · 162 阅读 · 0 评论 -
new与malloc的区别,delete与free的区别
new和malloc的区别是C/C++一道经典的面试题,我也遇到过几次,回答的都不是很好,今天特意整理了一下。0.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 属性new/delete是C++关键字,需要编译器支持。malloc/free是库函数,需要头文件支持。1.&nbsp;&转载 2018-09-18 09:49:40 · 202 阅读 · 0 评论 -
string函数(转)
linux kernel code : kernel/lib/string.cstrsep,strtok,strchr ,strstr ......PS:本文包含了大部分strings函数的说明,并附带举例说明。本来想自己整理一下的,发现已经有前辈整理过了,就转了...转载 2018-09-19 15:12:24 · 175 阅读 · 0 评论 -
C++学习笔记(五)
函数、递归、函数指针1.函数的返回值类型不能是数组,但可以将数组作为结构或对象的组成部分来返回2.按值传递时,函数使用的使参数的拷贝,而不是原来的数据。3.当且仅当用于函数头或函数原型中时,int *arr 与int arr[ ]含义相同。在其他的上下文中,两者含义并不相同。例如并不能在函数体中使用int tip[ ]来声明指针。 有两个恒等式: arr[i]==*(arr...原创 2018-10-12 20:15:30 · 164 阅读 · 0 评论 -
C++学习笔记(七)
内存模型和名称空间(单独编译、存储持续性、作用域、链接性、说明符、限定符、布局new操作符、名称空间)1.模板声明由于不是将被编译的代码,只是指示编译器如何生成与源代码中的函数调用相匹配的函数定义,因此放在头文件中是可以的2.在链接编译模块时,要确保所有的对象文件或库都是由同一个编译器生成的。如果有源代码可以用自己的编译器重新编译源代码来消除链接错误。3.C++采用三种方案来存储数据,...原创 2018-10-18 15:29:36 · 213 阅读 · 0 评论 -
C++学习笔记(四)
循环、关系表达式、分支和逻辑操作符、循环读取数字的错误处理1. cout.setf(ios_base::boolalpha) cout在显示bool值前将他们转化为Int,而调用这个函数可以使cout显示true和false2. 前缀函数a++与后缀函数++a:当用户对于类定义的前缀函数——将值加一,然后返回结果;后缀函数:先复制一个拷贝,将其加一。然后将复制的拷贝返回。因此对于类而言前...原创 2018-10-09 18:40:34 · 161 阅读 · 0 评论 -
C++内存分配、内存管理、内存泄漏的处理
收藏下来,慢慢看。转自https://blog.csdn.net/caogenwangbaoqia...转载 2019-07-16 22:09:12 · 439 阅读 · 0 评论