![](https://img-blog.csdnimg.cn/20201014180756930.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
【C++ Primer】
文章平均质量分 91
小田
无人扶我青云志,我自踏雪向山巅。倘若命中无此运,孤身亦可登昆仑。他朝若有翻身时,生吃黄莲也叫甜。
展开
-
【C++ Primer】第四章学习笔记 (复合类型)
一,数组 1,数组只有在定义时候才能使用初始化,不能将一个数组赋给另一个数组。 int a[4]={1,2,3,4};//正确 int a[4]; a[4]={1,2,3,4};//不正确 int b[4]=a;//不正确 2,初始化数组时候,提供少于数组元素数目的部分数值原创 2011-12-31 00:50:42 · 6374 阅读 · 21 评论 -
【C++ Primer】静态链接库(lib)和动态链接库(dll)的区别和使用
如果对Linux下静态链接库和动态链接库感兴趣,请狂点击 -->你懂的一,概念 1)静态链接库就是你使用的.lib文件,库中得代码最后需要连接到你的可执行文件中去,所以静态连接的可执行文件一般比较大一些。 使用方法 1> 格式如:#pragma comment(lib,"XXX.lib"原创 2012-07-10 14:50:40 · 7191 阅读 · 3 评论 -
【C++ Primer】类的多态
一,概述 1)接口的多种不同的实现方式即为多态。 2)多态性是允许你将父对象设置成为和一个或更多的他的子对象相等的技术,赋值之后,父对象就可以根据当前赋值给它的子对象的特性以不同的方式运作。简单的说,就是一句话:允许将子类类型的指针赋值给父类类型的指针。多态性在C++中都是通过虚函数(Virtual Function) 实现的。 3)关键点:多原创 2012-07-10 10:55:06 · 1314 阅读 · 2 评论 -
【C++ Primer】第十三章 类继承
一,类继承 定义:从已有的类派生出新的类,而派生类继承了原有类的特征,包括方法。 目标:提供可重用的代码二,一个简单的基类#include #include using namespace std;class student //基类{private: char name[20]; int num; int age;publi原创 2012-03-20 12:58:38 · 1183 阅读 · 0 评论 -
【c++ primer】第八章 函数探幽
一,C++内联函数 定义: inline double square (double x){return x*x;}//含有关键字inline的内联函数 描述:内联函数类似于宏的定义与调用 使用:调用内联函数时候,不用跳到另一个位置执行代码,而是将调用内联函数代码用相应内联函数替换。 区别:普通函数调用时候,跳到函数处执行原创 2012-02-29 20:15:03 · 1000 阅读 · 1 评论 -
【C++ primer】高效的逻辑运算符
一,引例 问题:把一个字节逆置,要求用移位的方法 unsigned char ch 八位 思路一:初始一个unsigned char temp=0; 用1分别左移 0--7位跟ch 相与,如果大于零,则在7-i(相对应的位置置1否则置0) #include using namespace st原创 2012-05-22 19:31:53 · 1592 阅读 · 0 评论 -
【C/C++】标准C语言头文件
标准C语言头文件ISO C标准定义的头文件(24项) 验证程序断言 支持复数算术运算 字符类型 出错码 浮点环境 浮点常量 整型格式转换 替代关系操作符宏 实现常量转载 2012-06-11 16:26:18 · 2677 阅读 · 0 评论 -
【C语言】conio.h 函数详解
一,简介 conio是Console Input/Output(控制台输入输出)的简写,其中定义了通过控制台进行数据输入和数据输出的函数,主要是一些用户通过按键盘产生的对应操作,比如getch()函数等等。 大部分DOS,Windows 3.x,Phar Lap,DOSX,OS/2 or Win32平台上的C编译器提供此文件,UNIX 和Linux平台的c编译器通常不包含此原创 2012-05-21 16:02:57 · 38132 阅读 · 2 评论 -
【C++ Primer】两个类相互包含的求解策略
一,问题描述 A类包含B类的实例,而B类也包含A类的实例 二,求解策略 1)错误的解法 A文件包含B,而B文件又包含A文件,这样就形成死循环#include "B.h"class A{ int i; B b;};#include "A.h"class B{原创 2012-06-30 18:13:07 · 8540 阅读 · 7 评论 -
【内存类操作】浅谈内存拷贝异常
结合本人在实际项目中所积累的经验,以及曾经犯过的错误,堆内存操作类函数做一个简单的剖析,抛砖引玉,欢迎大家吐槽。 首先,讲一下内存使用异常发生的几种场景。 1、野指针的使用,使用已经释放的指针,如果向野指针中写内容,就极有可能导致设备重启或任务挂死。因为,正在运行的任务的地址被意外的改写。 【避免策略】函数入参原创 2014-05-21 23:24:22 · 3493 阅读 · 0 评论 -
【C++ Primer】自己动手编写函数 atoi(char *str)
一,要求:自己动手编写 atoi(char *str)函数,功能是将字符串变成数字 简单版本: 需要考虑的地方 1)正负号 2)仅仅考虑十进制 3)如何把数字 字符原创 2012-07-19 22:41:03 · 1382 阅读 · 1 评论 -
【C++ Primer】int 转 string
一、使用atoi 说明: itoa( int value, char *string, int radix ); 第一个参数:你要转化的int; 第二个参数:转化后的char*; 第三个参数:你要转化的进制; 举例:#include using原创 2012-08-26 16:58:11 · 1812 阅读 · 0 评论 -
【C++ primer】第十七章 输入、输出和文件
一,C++输入和输出的概述 1)流和缓冲区 流是程序和源流或流目标之间的桥梁 磁盘驱动器以512字节(或更多)的块为单位传输信息,程序通常每次只能处理一个字节信息。所以缓冲区用来匹配这两种不同的信息传输速率。 输出时,先填满缓冲区,然后把整块数据传输给硬盘,并清空缓冲区,以备下一批输出使用。原创 2012-05-14 09:24:03 · 2057 阅读 · 0 评论 -
【C++ STL】细数C++ STL 的那些事---List(双向链表)
一,概述 List将元素按顺序储存在链表中. 与向量(vectors)相比, 它允许快速的插入和删除,但是随机访问却比较慢。 list 不仅是一个双向链表,而且是一个环状双向链表二,使用 #include using namespace std; 注意:list是一个“前闭后开”的区间,即原创 2012-04-08 23:18:16 · 9054 阅读 · 2 评论 -
【C++ Primer】内联函数和外联函数
一,概念 成员函数:在类的定义中规定在类体中说明的函数作为类的成员,称为成员函数。 前面讲过一般的成员函数,它是根据某种类的功能的需要来定义的。又讲述了一些特殊的成员函数:构造函数、析构函数、拷贝初始化构造函数等。还有一些成员函数后面还会介绍。 成员函数除了说明和定义在类中之外,还有些什么特性,这是本节讨论的问题。二、内联性和外联函数 类的成员函原创 2012-07-09 23:13:15 · 3830 阅读 · 1 评论 -
【C++ Primer】深度解析struct --面试常见题
一,C和C++间struct的深层区别 1)在C++语言中struct具有了“类” 的功能,其与关键字class的区别在于struct中成员变量和函数的默认访问权限为public,而class的为private。 例如,定义struct类和class类:struct structA{char a;…}class classB{ cha原创 2012-06-07 19:57:33 · 3072 阅读 · 2 评论 -
【C++ Primer】 神秘的 sizeof(union) 、sizeof(struct) 和内存对齐技术
一,union:C/C++关键字 共用体(联合) 共用体的声明和共用体变量定义与结构十分相似。形式为: union 共用体名{ 数据类型 成员名; 数据类型 成员名; ... } 变量名; 共用体表示几个变量共用一个内存位置,在不同的时间保存不同的数据类型和不同长度的变量.在union中,所有的共用体成员共用一个空原创 2012-05-17 15:30:10 · 12096 阅读 · 11 评论 -
【C++ Primer】第十五章 友元、异常和其他 --之一--->友元和嵌套类
一,友元 1)可以将类作为友元,友元类的所有方法都可以访问原始类的私有成员和保护成员。 2)下面例子介绍了 电视类和遥控器类,其中遥控器类为电视类的友元类 3)注意:友元关系不具对称性。即 A 是 B 的友元,但 B 不一定是 A 的友元。 友元关系不具传递性。即 B 是 A 的友元,C 是 B 的友元,但是 C 不一定是 A 的友元。#in原创 2012-03-27 19:57:05 · 1546 阅读 · 0 评论 -
【c++ Primer 】 4.10复习题 12题(int)、(int&)和(int*)
(1)首先通过一个例子看(int)和(int&)的区别:float a = 1.0f;cout cout cout float b = 0.0f;cout cout cout 输出:11065353216false00true 解释: (int)a实际上是以浮原创 2012-01-07 22:26:19 · 1341 阅读 · 0 评论 -
【C++ Primer】第十四章 C++中的代码重用
序:C++的一个主要目标是促进代码重用,其中包含公有继承、包含、使用私有或保护继承一,包含对象成员的类 1)valarray类简介 #include 作用:处理数值,支持数值中所有元素的值相加,找最大值,最小值 用法:vallarray a; //数组 a size=0原创 2012-03-26 20:57:41 · 1124 阅读 · 1 评论 -
【c++ primer】第十章 对象和类
一,过程性编程和面向对象编程 1)采用过程性编程方法,首先考虑要遵循的步骤,然后考虑如何表示这些数据。 2) 采用面向对象编程,首先从用户角度考虑对象,描述对象所需要的数据,以及描述用户与数据交互所需要的操作。完成对接口的描述后,需要确定如何实现接口和数据存储,最后使用心得设计方案创建出程序。二,抽象和类 1)类:将抽象转换为用户定义类型的C++工具,将数据原创 2012-03-07 23:40:01 · 996 阅读 · 0 评论 -
【c++ primer】第九章 内存模型和名称空间
一,单独编译 1)请不要将函数定义或变量声明放到头文件中。 原因:一个头文件中包含一个函数定义,然后其他两个文件(同属于一个程序)包含该头文件,则同一个程序中将包含同一个函数定义。除非函数是内联的(inline),否则将出错。 2)将结构放在头文件中是可以的。因为它们不创建变量。 3)头文件写法: “main.h原创 2012-03-06 00:08:33 · 1048 阅读 · 0 评论 -
【C++ Primer】第六章(分支语句和逻辑操作符)
1,cin的用法char ch;cin.get(ch); //仅仅接受一个字符(输入12,则ch仅仅赋值为1)cout2,对于字符型变量ch,++ch与ch+1的区别int main(){char ch;cin.get(ch);while(ch!='.'){if(ch=='\n')cout<<ch;elsecout<<ch+1; cin.get(ch);原创 2012-02-21 00:23:06 · 1331 阅读 · 2 评论 -
【C++ primer】第七章 函数-C++的编程模块
1,函数的基本知识 C++对于返回值的类型有一定的限制:不能是数组,但可以使其他任何类型,甚至可以使结构和对象。 有趣的是,虽然数组不可以作为返回对象,但是数组可以作为结构或对象组成部分来返回。2,函数参数和按值传递 cin.get();//读取所有输入的字符,包括空格和换行符。 cin>> ;//跳过空格和换行符读取。3,函原创 2012-02-22 00:12:32 · 1151 阅读 · 0 评论 -
【C++ Primer】三章学习笔记 (处理数据)
处理数据一,分类 基本类型+复合类型 基本类型包括:整数和浮点数 复合类型包括:结构(struct) 整数分类 整型:char short int long 及unsigned 八种 浮点型:float double lo原创 2011-12-07 09:25:40 · 1487 阅读 · 6 评论 -
【c++ primer】第十二章 类和动态内存分配
一,概念 1)静态存储方式:指在程序运行期间分配固定的存储空间的方式。外部变量和静态变量属于此种存储方式 2)静态成员变量:为该类的所有实例所共享,也就是说当某个类的实例修改了该静态成员变量,其修改值为该类的其它所有实例所见。无论创建多少对象,程序都只创建一个静态变量副本。 3)静态成员特点:静态成员存在于内存,非静态成员需要实例化才会分配内存原创 2012-03-14 15:17:49 · 1770 阅读 · 0 评论 -
【c++ primer】第十一章 使用类
一,操作符重载 1)函数重载(多态) 名称相同,特征标(参数列表)不同的函数。完成相同的基本操作 2)操作符左侧的对像是调用对象,操作符右侧的作为参数被传递的对象 3)重载限制:1>重载后的操作符至少有一个操作数是用户定义的类型。防止用户为标准类型重载操作符 2原创 2012-03-12 17:06:31 · 1096 阅读 · 0 评论 -
【C++ Primer】第五章 循环和关系表达式
一,for循环 1,在C++中每一个表达式都有值; int a=0//声明表达式 23+17 //数学表达式 a=(b=3)+4//a的值为7 2,表达式跟语句的区别 表达式加上";"就是语句 a=10为表原创 2012-02-14 00:08:23 · 1137 阅读 · 0 评论 -
【C++ Primer】第十六章 string类和标准模板库
一,string类 1)构造函数 string() string(const char *s) string(size_type n,char c)//包含n个元素的string 全部初始化为 c string(const char *s,size_type n)//初始原创 2012-04-08 22:13:19 · 1306 阅读 · 0 评论 -
【c++ primer】深入解析 strcpy() 笔试面试高频题
一,strcpy用法及注意事项 1)strcpy( )概述 原型: extern char *strcpy(char *dest,char *src); //注意把谁复制给谁 用法: #include 功能:把src所指以N原创 2012-06-01 19:01:18 · 5088 阅读 · 5 评论 -
【C++ Primer】C++输入cin详解
输入原理: 程序的输入都建有一个缓冲区,即输入缓冲区。一次输入过程是这样的,当一次键盘输入结束时会将输入的数据存入输入缓冲区,而cin函数直接从输入缓冲区中取数据。正因为cin函数是直接从缓冲区取数据的,所以有时候当缓冲区中有残留数据时,cin函数会直接取得这些残留数据而不会请求键盘输入#1:#include using namespace std原创 2012-06-02 00:29:35 · 2179 阅读 · 2 评论 -
【C++ Primer】第十五章 友元、异常和其他 --之二--->异常
一,运行阶段错误 1)程序打开一个不可用的文件 2)请求过多的内存 3)遭遇不能容忍的值二,调用abort() 异常终止一个进程 #include 流程: 1)向标准错误流发送消息 abnormal program termination 2)终止程序原创 2012-04-07 22:28:53 · 1470 阅读 · 0 评论 -
【C++ Primer】一、二章学习笔记
一,cin.get() 目的: 防止有些程序,输出结果后关闭窗口。 作用:读取下一次键盘敲击。所有的键盘敲击,直到按下Enter才发送给程序。二,C++新式风格 头文件:C++专有的 iostream C专有的 cmath //就是省略了 ".h"三,名空间 作用:使在C++标准类库中定义的名字在本程原创 2011-12-04 22:44:48 · 1112 阅读 · 0 评论