摘要:c中的枚举类型是整数类型的一个子集 c++中的枚举类(强类型枚举) 定义 语法 enmu class 枚举类型名:底层类型{枚举值列表}; 如 enmu class Type:char {General,Light,Medium,Heavy}; 默认的底层类型为int 优势 强作用域 作用域限制在枚
阅读全文
摘要:结构体是一种特殊的类(在c++中用的不多,很多时候是为了与c语言兼容才使用) 与类的区别 类默认访问属性为private 而结构体默认访问属性是public struct 名称{ 共有成员(默认) protected: private: }; 什么时候用结构体不用类 定义主要用来保存数据但没有什么操
阅读全文
摘要:类应该先声明后使用 如果需要在某个类的声明之前引用该类,需要进行前向引用声明 前向引用声明只为程序引入一个标识符 具体声明在其他地方 使用注意 在提供一个完整的类声明以前 不能声明该类的对象,不能在内联函数中使用该类的对象 当使用前向引用声明时,只能使用被声明的符号(类名),不能涉及细节
阅读全文
摘要:基本概念 构造函数 类中的特殊函数 用于描述初始化算法 作用 在对象被创建时使用特定值构造对象 将对象初始化为一个特定状态 如 在构造一个clock类的时候 把初始时间设为0 0 0就可以通过构造函数来设置 形式 函数名与类名相同 不能定义返回值类型,不能有return 可以有形式参数,也可以没有形
阅读全文
摘要:对象是类的实例 定义类的对象,才能通过对象使用类中定义的功能 设计一个类意味着什么 设计类就是设计类型 此类型的合法值 内涵的操作符和函数 该类型的对象如何被创建和销毁 对对象进行初始化和赋值 对象作为函数的参数如何传递 谁使用该类的对象 类定义的语法 可以给数据成员设定初始值以初始化 类没有直接功
阅读全文
摘要:对象 现实中个体的抽象 抽象与类 对同类对象的共同属性和行为进行概括,形成类 首先注意问题的本质和描述,其次才是实现细节 数据抽象 描述某类对象的属性或者状态 代码抽象 描述某类对象的共有行为特征或者具有的功能 抽象的实现是类 以钟表为例去抽象 钟表 数据抽象 int hour, int minut
阅读全文
摘要:函数重载通过静态多态性实现 静态多态性 在编译阶段实现的多态性 函数重载 C++允许 功能相近的函数 在相同的作用域内 以相同函数名声明 从而形成重载 方便使用和记忆 如函数 (以上代码运行会报错重定义,但是并不是因为函数重载) 答案是 在<iostream>中可能包含了其他库,这个库已经包含了ab
阅读全文
摘要:可以预先设置函数值,调用时若给出实参,那么采用实参值,否则使用默认值 如定义函数 调用的时候 第一个调用毫无疑问 第二个10给了x,y继续用6 第三个使用默认值 说明次序 有默认参数的形参在形参列表的最右 调用时,形参与实参的结合顺序是从左到右 例 int add (int x, int y = 5
阅读全文
摘要:关键字 inline 声明一个内联函数 内联函数的作用是大致可以理解为 使用函数体内的语句去替换函数调用表达式 为什么这么做 有的函数执行很简单 而调用返回花费的时间比运行该函数的时间还要多,因此使用内联函数省去调用返回的开销 定义内联函数 一定要求该函数比较简单具体要求是 1.内联函数体内不能有循
阅读全文
摘要:使用函数,主调函数单项传值,而形参的作用范围只有被调函数,一旦被调函数结束,形参被释放,主调函数没有办法的到多个形参的值(单个形参传值可以用return语句), 比方说对于以下函数 void f(int a ,int b) {} int main(void) { int x=5,y=6; f(x,y
阅读全文
摘要:一直都没有真正理解汉诺塔,今天花了一个下午总算弄懂了 #include<iostream>using namespace std; void ha(int n, char a, char b, char c);void move(char a, char c);int main(){ char a
阅读全文