随笔分类 -  C++学习笔记

1
记录C++学习过程中的知识要点
程序设计实习 作业3 魔兽世界终极版
摘要:Description: 魔兽世界的西面是红魔军的司令部,东面是蓝魔军的司令部。两个司令部之间是依次排列的若干城市,城市从西向东依次编号为1,2,3 .... N ( N <= 20 )。红魔军的司令部算作编号为0的城市,蓝魔军的司令部算作编号为N+1的城市。司令部有生命元,用于制造武士。 两军的司 阅读全文
posted @ 2018-08-21 19:47 宵夜在哪 阅读(696) 评论(0) 推荐(1)
多态和虚函数
摘要:虚函数概念: 在类的定义中,前面有virtual关键字的成员函数就是虚函数。 virtual关键字只用在类定义里的函数声明中,写函数体时不用。 构造函数和静态成员函数不能是虚函数。 多态的表现形式: 1) 派生类的指针可以赋给基类指针。 通过基类指针可以调用基类和派生类中的同名虚函数时:指针指向哪个 阅读全文
posted @ 2018-04-03 21:43 宵夜在哪 阅读(145) 评论(0) 推荐(0)
复合关系和继承关系
摘要:继承关系: “是”的关系 B是基类A的一个派生类 逻辑上要求:“一个B对象也是一个A对象”。 例: “男人”是一个“人”,“女人”也是一个“人”,因此“男人”和“女人”就可以从“人”中继承得到,但男人和女人不能互相继承。 复合关系: “有”关系 类C中“有”成员变量k,k是类D的对象,则C和D是复合 阅读全文
posted @ 2018-03-27 19:56 宵夜在哪 阅读(428) 评论(0) 推荐(0)
继承与派生
摘要:概念: 继承:在定义一个新的类B时,如果该类与某个已有的类A相似(指的是B拥有A的全部特点),那么就可以把A作为一个基类,而把B作为基类的一个派生类(也称子类) 派生类可以对基类进行扩充(成员函数和成员变量) 派生类一经定义后,可以独立使用,不依赖于基类。 派生类拥有基类的全部成员函数和成员变量,无 阅读全文
posted @ 2018-03-27 19:29 宵夜在哪 阅读(113) 评论(0) 推荐(0)
常量对象、常量成员函数和常引用
摘要:常量对象: 如果不希望某个对象的值被改变,则定义该对象的时候可以在前面加const关键字。常量对象只能调用类中的常量成员函数。 const 类名 对象名; 常量成员函数: 如果不希望类中的某个函数修改类中的值,则定义该成员函数的时候可以在后面加const关键字。 常量成员函数不能修改本类的成员变量( 阅读全文
posted @ 2018-03-15 14:24 宵夜在哪 阅读(987) 评论(0) 推荐(0)
this指针
摘要:基本概念: C++刚出来的时候没有相应的编译器,因此要编译的时候要先翻译成C程序再进行编译。C++中的class对应C中的结构体,而结构体中不能存放函数,所以class中的成员函数被翻译成C中的全局函数,而这个全局函数又需要class中的成员变量(也就是struct中的变量),所以在调用的时候需要传 阅读全文
posted @ 2018-03-15 13:54 宵夜在哪 阅读(134) 评论(0) 推荐(0)
友元
摘要:友元函数: 作用: 作用: 一个类的友元函数可以访问该类的私有成员,也就是说:在一个类中声明一个友元函数,那么在那个友元函数中就可以访问这个类的私有成员。 声明方式: 声明方式: 在声明前加一个friend即可: friend 类型名 函数名(参数表); 范围: 范围: 友元函数可以是普通函数,也可 阅读全文
posted @ 2018-03-15 11:46 宵夜在哪 阅读(149) 评论(0) 推荐(0)
成员对象和封闭类的概念
摘要:基本概念: 成员对象:一个类的成员变量是另一个类的对象 包含成员对象的类叫封闭类(若成员对象的构造函数中有参数,封闭类初始化时中必须进行对其进行初始化) 初始化列表: 定义构造函数时,可添加初始化列表: 类名::构造函数(参数表):成员变量1(参数表),成员变量2(参数表)... { ... } 成 阅读全文
posted @ 2018-03-13 23:46 宵夜在哪 阅读(343) 评论(0) 推荐(0)
静态成员变量和静态成员函数
摘要:定义方式: static 类型名 变量名;//静态成员变量 static 类型名 函数名(){ };//静态成员函数 基本概念: 普通成员变量每个对象有各自的一份,而静态成员变量一共就一份,为所有对象(包括其他类的对象)共享。sizeof 运算符不计算静态成员变量的大小。 普通成员函数必须具体作用于 阅读全文
posted @ 2018-03-13 21:38 宵夜在哪 阅读(170) 评论(0) 推荐(0)
析构函数
摘要:概念: 成员函数的一种 格式为 ~类名 没有参数和返回值 一个类最多只能有一个析构函数 对象消亡时自动被调用,用于对象消亡前最善后工作 析构函数与New、delete运算符: 类名 变量名 像是这样定义的类会在存在的函数结束后自动消亡,消亡前调用析构函数。 类名 *指针名 = New 类名; 但这样 阅读全文
posted @ 2018-03-13 20:38 宵夜在哪 阅读(151) 评论(0) 推荐(0)
类型转换构造函数
摘要:目的: 实现类型的自动转换 特点: 只有一个参数 不是复制构造函数 代码: 阅读全文
posted @ 2018-03-13 18:48 宵夜在哪 阅读(158) 评论(0) 推荐(0)
复制构造函数
摘要:基本概念: 只有一个参数,即对同类对象的引用。 形如 X::X(X&)或X::X(const X&),二者选一,后者能以常量对象作为参数。 如果没有定义复制构造函数,那么编译器生成默认复制构造函数。 起作用的三种情况: 1)当用一个对象去初始化同类的另一个对象时。 2)如果某函数有一个参数是类A的对 阅读全文
posted @ 2018-03-10 16:58 宵夜在哪 阅读(148) 评论(0) 推荐(0)
构造函数
摘要:构造函数: 是成员函数的一种 名字与类名相同,可以有参数,不能有返回值 作用是对对象进行初始化,如给成员变量赋初值 如果定义类时没写构造函数,则编译器会生成一个默认的无参数构造函数,默认的构造函数不进行任何操作 对象生成时构造函数自动被调用。对象一旦生成,就再也不能调用构造函数 一个类可以有多个构造 阅读全文
posted @ 2018-03-10 16:28 宵夜在哪 阅读(146) 评论(0) 推荐(0)
类成员的可访问范围
摘要:关键字: private: 指定私有成员,只能在基类的成员函数和友元函数内被访问。 public: 指定公有成员,可以在任何地方被访问。 protected: 指定保护成员,比private的范围稍广,除了基类的成员函数和友元函数外,还可以在派生类的成员函数和友元函数中被访问。 三种关键字出现的次数 阅读全文
posted @ 2018-03-08 23:06 宵夜在哪 阅读(143) 评论(0) 推荐(0)
内联函数、重载函数和函数缺省参数
摘要:内联函数: 函数调用是有时间开销的。如果函数本身只有几条语句,执行非常块,而且函数被反复执行很多次,相比之下调用函数所产生的这个开销就会显得比较大。 为了减少函数调用的开销,引入了内联函数机制。编译器处理对内联函数的调用语句时,是将整个函数的代码插入到调用语句处,而不会产生调用函数的语句。 在函数定 阅读全文
posted @ 2018-03-08 22:44 宵夜在哪 阅读(374) 评论(0) 推荐(0)
动态内存分配
摘要:用new运算符实现动态内存分配 第一种用法,分配一个变量: P = new T; T是任意类型名,P是类型为T*的指针。 动态分配出一片大小为sizeof(T)字节的内存空间,并且将该内存空间的起始地址赋值给P。 第二种用法,分配一个数组: P = new T[N]; T: 任意类型名 P: 类型为 阅读全文
posted @ 2018-03-08 22:32 宵夜在哪 阅读(177) 评论(0) 推荐(0)
引用
摘要:定义方式: 类型名 & 引用名 = 某变量名; 某个变量的引用,等价于这个变量,相当于该变量的另一个别名。 定义引用时一定要将其初始化成引用某个变量。引用只能引用变量,不能引用常量和表达式。 常引用: 定义常引用时在前面加const关键字。 不能通过常引用去修改其引用的内容。 const T & 和 阅读全文
posted @ 2018-03-08 22:11 宵夜在哪 阅读(106) 评论(0) 推荐(0)
位运算
摘要:位运算: 用于对整数类型(int, char, long等)(double和float类型不可用) 变量中的某一位(bit), 或者若干位进行操作。比如: 1) 判断某一位是否为1 2) 只改变其中某一位,而保持其他位都不变 C/C++语言中有六种位运算符来进行位运算操作(操作补码): & 按位与( 阅读全文
posted @ 2018-03-08 21:16 宵夜在哪 阅读(201) 评论(0) 推荐(0)
命令行参数
摘要:函数定义方式: int main(int argc, char *argv[]) { ...... } argc: 代表启动程序时,命令行参数的个数。C/C++语言规定,可执行程序本身的文件名,也算一个命令行参数,因此,argc的值至少是1. argv: 指针数组,其中的每个元素都是一个char*  阅读全文
posted @ 2018-03-08 20:26 宵夜在哪 阅读(167) 评论(0) 推荐(0)
函数指针及qsort函数实例
摘要:定义: 顾名思义,函数指针就是指向函数的指针变量。 定义形式: 类型名(*指针变量名)(参数类型1,参数类型2,...) qsort函数: qsort函数是C语言快速排序库函数,可以对任意类型的数组进行排序。 void qsort(void *base, int nelem, unsigned in 阅读全文
posted @ 2018-03-08 20:11 宵夜在哪 阅读(168) 评论(0) 推荐(0)

1