随笔分类 - C++-重订版
先前的C++目录太过凌乱,导致现在我看得头不是头,尾不是尾,因为自己的看的书比较杂,没本书的讲述内容都不一致,今天看到一位隔壁网站博友的目录结构,这里我借鉴下,如有侵权可以联系我删除,他(她)的地址:http://blog.sina.com.cn/s/blog_5dd76ecf0100iifj.html
摘要:1. 命名空间的定义:由关键字 namespace后边接着命名空间名字,之后接一对花括弧括住的一块声明和定义; //17.2.A.h 头文件定义命名空间 primer_17_2 //17.2.A.h 头文件定义命名空间 primer_17_2 namespace primer_17_2 { //定义
阅读全文
摘要:程序的异常处理是使得程序具有一定的容错性,是指允许给运行环境或者人为因素的一些错误的提示或处理。其基本思想:每一个函数要负责发现异常,不必去处理错误,但是需要构造一个异常对象向调用者抛出该异常。该调用者查看异常对象,判断是否能够解决,给用户提示;如果处理不了,则需要继续向更上一级的调用者抛出异常,如
阅读全文
摘要:1、泛型程序设计:将程序尽可能写的通用,将算法从特定的数据结构中抽象出来,成为通用的;C++模板为泛型程序设计奠定了关键的基础;STL是泛型程序设计的一个范例:容器container、迭代器iterator、算法algorithms和函数对象function object。 2、命名空间namesp
阅读全文
摘要:I/O流的概念 当程序与外界环境进行信息交换时,存在着两个对象,一个是程序中的对象,另一个是文件对象,流是一种抽象,它负责在数据的生产者和数据的消费者之间建立连接,并管理数据的流动。程序建立一个流对象,并指定这个流对象与某个文件对象建立连接,程序操作流对象,流对象通过文件系统对所连接的文件对象产生作
阅读全文
摘要:1、函数模板:可以用来创建一个通用功能的函数,以支持多种不同形参,进一步简化重载函数的函数体设计。 声明方法:template<typename 标识符> 函数声明 求绝对值的模板 #include<iostream> ……编译器从调用abs函数时实参的类型,推导出函数模板的类型参数。using n
阅读全文
摘要:多态是指发出同样的消息被不同类型的对象接收时有可能导致完全不同的行为; 多态的实现:函数重载;运算符重载;虚函数 为什么需要重载运算符? 在C++没有复数运算,进行复数运算之前我们要事先写一个复数类,复数的运算该如何设计?为了实现复数的加减,我们需要重载+、-运算符。 运算符重载的实质:是对已有的运
阅读全文
摘要:11、用字符数组存储和处理字符串 字符数组的声明和引用 字符串: 字符串常量 “china”,没有字符串变量,用字符数组来存放字符串,字符串以‘\0’结束。 字符串数组的初始化: 逐个输出输入字符串; 将整个字符串一次输入输出; 输出字符不包含\0; 输出字符串时用数组名,遇到\0结束; 输入多个字
阅读全文
摘要:1、类的继承与派生 保持已有类的特性而构造新类的过程成为继承; 在已有类的基础上新增自己的特性而产生新类的过程称为派生; 被继承的已有类为基类;派生出的新类成为派生类。继承和派生其实是一回事。 继承的目的是实现代码的重用,派生的目的是当新的问题出现的时候,原有的程序不能解决时,需要对原程序进行改造。
阅读全文
摘要:要实现深拷贝就需要自己编写拷贝构造函数。 深拷贝 #include<iostream> using namespace std; class Point { public: Point() { X=Y=0; cout<<"Default Constructor called."<<endl; } P
阅读全文
摘要:动态创建多维数组 new 类型名T[下标表达式1][下标表达式2]…; 如果内存申请成功,new运算返回一个指向新分配内存首地址的指针,是一个T类型的数组,数组元素的个数为除最左边一维外各维下标表达式的乘积。例如: char (*fp)[3];//指向一维数组的指针,即指向一个整个数组,如果指针加1
阅读全文
摘要:10、深拷贝与浅拷贝 浅拷贝: 实现对象间数据元素的一一对应赋值;(默认构造函数) 深拷贝: 当被复制的对象数据成员是指针类型时,不是复制该指针成员本身,而是将指针所指的对象进行复制。 //浅拷贝 #include<iostream> using namespace std; class Point
阅读全文
摘要://创建对象数组 #include<iostream> using namespace std; class Point { public: Point() { X=Y=0; cout<<"Default Constructor called."<<endl; } Point(int xx,int
阅读全文
摘要:9.动态内存分配 new 类型名T(初值列表) 其功能是在程序执行期间申请用于存放T类型对象的内存空间,并依初值列表赋以初值,结果值:成功则T类型的指针,指向新分配的内存;失败则为0(null)。若要释放内存,则用delete *p;释放指针p指向的内存,P必须是new操作的返回值。 //动态分配
阅读全文
摘要:8、对象指针 声明: 类名 *对象指针名 Point A(5,10); Point *ptr; ptr=&A;//通过指针访问对象成员:对象指针名->成员名。ptr->getX();相当于(*ptr).getX; 曾经错误的前向引用的例子 class Fred; //前向引用声明 class Bar
阅读全文
摘要:8.2 指向类的静态成员的指针 对类的静态成员的访问不依赖于对象,可以用普通的指针来指向和访问。 //通过指针访问类的静态数据成员 #include <iostream> using namespace std; class Point //Point类声明 { public: //外部接口 Poi
阅读全文
摘要:指针作为函数参量 指针作为函数参量,以地址的方式传递数据,可以用来返回函数处理结果;实参是数组名时形参可以是指针。 题目:读入三个浮点数,将整数部分和小数部分分别输出 #include <iostream> using namespace std; void splitfloat(float x,
阅读全文
摘要:7.4 指向数组元素的指针 声明与赋值 例:int a[10], *pa; pa=&a[0]; 或 pa=a[p1] ; 通过指针引用数组元素,经过上述声明及赋值后: *pa就是a[0],*(pa+1)就是a[1],... ,*(pa+i)就是a[i]. a[i], *(pa+i), *(a+i),
阅读全文
摘要:7、关于内存地址 内存空间的访问方式:通过变量名访问,通过地址访问; 地址运算符:& 如:int var; 则&var表示变量var的内存起始地址; //& 出现在声明语句中出现时引用,别名而已,在运算表达式中出现&,说明是取内存地址。 7.1 指针变量的概念 指针:内存地址,用于间接访问内存单元
阅读全文
摘要:6.3 二维数组的声明和引用 声明:数据类型 标识符[常量表达式1][常量表达式2];int a[3][4]; 表示a为整型二维数组,其中第一维有3个下标(0~2),第二维有4个下标(0~3),数组元素12个,可以用来存放3行4列的整型数据表格。可以理解为: a[0]——a 00 a01 a02 a
阅读全文
摘要:6、数组 指针与字符串 6.1 数组 数组是具有一定顺序关系的若干相同类型变量的集合体,组成数组的变量成为数组的元素。数组属于构造类型。 一维数组的声明: 类型说明符 数组名[常量表达式],若int a[10],a是整形数组,有十个元素,为a[0]……a[9]。 引用:必须先声明后使用,只能逐个引用
阅读全文

浙公网安备 33010602011771号