C++笔记
路漫求索_CUMT
既然我选择了这条路,那么没有什么可以阻挡我前进的脚步!
展开
-
数组指针和指针数组
数组指针和指针数组eg:#include using namespace std;void main(void){int i;int a[3] = {1,2,3};int (*p1) [3] = &a;for(i=0;i{cout}}(1)概念:就如上面的代码一样,定义的int(*p1)[3]为指向元素个数为原创 2016-09-16 12:36:05 · 341 阅读 · 0 评论 -
类和对象的基础6——类的作用域和生存周期
一、类的作用域1、类的作用域:在类中定义数据成员和函数成员的作用域是整个类,在类外是否可见取决于该类的访问权限(public、protect、private)。2、分类:按作用域分类的话,可以分为一般类、嵌套类(定义在某个类中)、局部类(定义在某个函数内)。二、类的生存周期1、按生存周期由常至短的排:全局对象>静态对象(外部静态>内部静态)>局部对象。2原创 2016-10-02 10:57:35 · 1239 阅读 · 0 评论 -
类和对象的基础7——友元函数和友元类
一、友元函数1、概念:为了实现类体外的一般函数或者另一个类的成员函数对该类体内的成员函数直接访问的目的而定义的,友元函数可以访问类中的private或者protect修饰的成员。注:友元函数并不是类中的成员函数,它是定义在类外的普通函数,只是在类中进行了声明该函数可以访问类中的private和protect成员。2.、友元函数的声明格式:friend (参数列表原创 2016-10-02 17:36:08 · 671 阅读 · 0 评论 -
类和对象的基础8——对象指针和对象数组
一、对象指针1、概念:指向对象的指针,简称对象指针。2、定义格式: * = ;eg:Car car1(60); //定义一个对象,车速为60Car *pc = &car1;//定义对象指针并初始化二、对象数组1、概念:数组中存放的是同类型的数据,若存放的数组元素为对象,则为对象数组。2、定义格式:原创 2016-10-03 10:02:56 · 411 阅读 · 0 评论 -
继承的基础知识1——有关继承的基本概念
1、继承的概念:在一个已知类的基础上创建一个新的类,新类包含了原来类的所有成员,并且还增加了自己的成员,这个过程叫继承。其中被继承的类叫做基类(也称为 父 类),由继承产生的新类叫做派生类(也称为子类)。2、分类:继承可以分为多重继承和单重继承,多重继承是指基类有多个,而单继承的基类只有一个。3、派生类的定义格式:class : {;原创 2016-10-03 14:20:01 · 603 阅读 · 0 评论 -
虚函数和多态性1——动态绑定和静态绑定
1、多态性的基本概念:面向对象的三大特性分别为封装性、继承性和多态性,利用多态性和虚函数使得软件可扩展性大大加强了。多态性是指对于同一命令,不同的对象执行 不同的操作。2、多态性的实现机制:静态绑定(早绑定)和动态绑定(晚绑定),其中“绑定”是指对于同名的函数的选择问题,就是程序如何选择同名原创 2016-10-05 16:35:28 · 507 阅读 · 0 评论 -
类成员指针1
1、概念:指向类中的数据成员或者成员函数的指针。2、定义格式:(1)指向数据成员的指针: ::* eg:声明一个指向double类型数据成员的指针: double Transport::* pd;可以用typedef来做同义替换:typedef double Transport::* pdouble; // pdouble表示 double Tran原创 2016-10-05 18:49:49 · 327 阅读 · 0 评论 -
函数的模板1——基础知识
1、概念:函数模板实际上是建立一个通用函数,其函数类型以及形参类型都不具体指定,用一个虚拟的类型来代表,在编译的时候由编译器来完成参数类型的确定,这种设计可以通过一个程序兼容多钟数据类型的目的。模板是C++实现泛型编程的基础,模板分为函数模板和类模板。2、定义函数模板的格式template 函数名 (模板参数表){//函数体}eg:定义一个原创 2016-10-06 10:27:52 · 409 阅读 · 0 评论 -
函数的模板2——函数模板重载
1、重载:函数名相同,但函数的定义不同。编译系统会根据实参的类型和个数选择匹配度最高的函数进行调用。重载的过程规律(执行顺序如下):(1)首先会查找普通函数,寻找和使用函数名和参数类型最匹配的函数,如果找到则调用;(2)若普通函数没有,则在函数模板中查找,将模板实例化,若和调用的函数匹配,则调用该函数模板;(3)若经过上述两步还是未能找到,则可以通过类型转换转换进行参数匹配的函数重原创 2016-10-06 18:56:10 · 635 阅读 · 0 评论 -
类和对象的基础1——定义和初始化
1、类的定义:一种用户自己定义的数据类型,类主要包括两大块:声明部分和实现部分。具体结构如下://声明部分 class {public:公有数据成员;公有函数成员:protected:保护数据成员;保护函数成员;private:私有数据成员;私有函数成员;}//实现部分 ::(参数列表){//函数体}2、实例原创 2016-09-22 11:03:16 · 587 阅读 · 0 评论 -
类和对象的基础5——类的类型转换
1、分类:(1)一般数据类型到类类型的转换;(2)类类型到一般数据类型的转换。2、类型的隐式转换:(1)在执行算术运算时,低精度数据自动向高精度转换;(2)赋值运算时,右值自动转换为左值得类型;(3)函数调用时看,实参类型自动转换为形参类型;(4)函数有返回值时,返回值类型自动转换为函数的类型。3、一般数据类型转换为类类型(1)方法:采用单个参数的构造函原创 2016-10-02 08:50:23 · 439 阅读 · 0 评论 -
函数指针和函数指针数组
1、定义的格式 函数返回类型 (*指针变量名)(函数参数列表)2、函数指针的初始化 将函数名赋给指针变量即可eg. int func(int a); //定义函数int (int *pf)(int a); //定义函数指针pf = func; //初始化注意: 函数指针参数类型和函数的参数类型要一致;函数指针返回值类型和函数的返回值类型要一致。原创 2016-09-21 15:18:39 · 670 阅读 · 0 评论 -
类模板2——静态成员以及非类型的类模板参数
一、类模板的静态成员1、概念:与普通类中的静态成员类似,模板类中的静态成员并不仅仅属于某一个对象,它可以实现对象之间的数据共享,静态成员包括:静态数据成员和静态函数成员。2、初始化:静态数据成员只能在类模板定义的外部进行初始化,而成员函数既可以在类体内进行初始化,又可以在类体外进行初始化。3、实例:定义一个学生类模板,计算学生某一科的平均成绩。二、非原创 2016-10-08 11:14:20 · 800 阅读 · 0 评论 -
标准模板库1(STL)——基本概念
1、广义上分STL分为3类:容器、迭代器、算法。(1)容器:用于容纳其他类型对象的类对象,STL提供了如向量、列表等诸多不同特性的容器;(2)迭代器:是智能指针的一种形式,用于指向容器中或者流中的对象,并提供一定的访问方法;(3)算法:它是STL的核心部分,提供一系列处理元素的特殊方法,如对容器中的元素进行排序、搜索等操作。2、容器分为三大类容器:顺序容器、关联容器、容器适原创 2016-10-11 16:51:28 · 540 阅读 · 0 评论 -
标准模板库2(STL)——迭代器
1、迭代器的地位:迭代器是连接容器与算法的桥梁,是一种智能指针。2、输入/输出迭代器优势:让输入的数据直接参与运算例子:使用输入输出流迭代器/******************************************************时间:2016年10月12日11:44:41功能:定义输入输出流迭代器*************************原创 2016-10-12 11:48:19 · 341 阅读 · 0 评论 -
C++中的程序预处理
1、概念:在编译源程序之前,对代码进行分隔或者处理为特定的符号,并不对源代码进行解析的过程。2、预处理的分类:(1)文件包含:使用命令#include,是一种最常见的预处理,主要是作为文件的引用组合源程序正文;(2)条件编译:使用命令#if,#ifndef,#ifdef,#endif,#undef等命令。条件编译主要是在进行编译时进行有选择的挑选,注释掉一些指定的代码,以达到版原创 2016-10-15 10:21:02 · 479 阅读 · 0 评论 -
类和对象的基础2——对象的生与死(构造函数和析构函数)
1、构造函数:对对象进行初始化;析构函数:对对象进行销毁,释放内存。注:(1)构造函数没有返回值,构造函数名必须和类名相同;(2)构造函数可以带一个或多个参数;(3)析构函数名必须和类名相同。2、构造函数的作用:实现数据成员的初始化。3、实例:定义一个学生类,用构造函数进行初始化,打印出学生信息,最后用析构函数销毁对象。/***构造函数和析构函数**原创 2016-09-23 18:18:08 · 306 阅读 · 0 评论 -
类和对象的基础3——拷贝构造函数
1、概念:拷贝构造函数的目的就是使用已经存在的同类对象来初始化创建对象的构造函数。2、格式:拷贝构造函数也是一种特殊的构造函数,它也有默认的拷贝函数,默认的拷贝构造函数如下:(const &形参对象名);{//实现复制}3、例子:用默认的拷贝构造函数实现新对象的初始化/**************************时间:2016年9月30原创 2016-09-30 09:45:17 · 367 阅读 · 0 评论 -
类和对象的基础4——静态成员和常成员
1、概念:一个类可以创建多个对象,这些对象之间是相对独立的,如果想实现对象之间的数据共享,就得使用静态成员,静态成员属于所有对象,并不属于某个对象,静态成员 分为静态数据成员和静态函数成员。2、声明格式: (1)若声明静态数据:static 数据类型 数据名; eg:static int speed;原创 2016-09-30 15:04:46 · 656 阅读 · 0 评论 -
类模板1——基本概念
1、概念:类模板是一个参数化类型,也就是使用一个或者多个参数创建一系列类的方式。原创 2016-10-07 09:03:19 · 435 阅读 · 0 评论