2018-04-02 20:15:53    1838    0    0
[TOC] #ARM汇编分类 * ARM标准汇编 适用于ARM公司的汇编器,适合在Windows平台下使用,如ADS中使用 * GNU汇编 适用于GNU交叉编译工具链中的汇编器,适合于Linux平台下使用 #ARM汇编程序框架 .section .data ; 这里.section常常省略 <初始化数据> .section .bss
2017-10-23 14:03:40    220    0    0
#继承 ##继承中构造和析构的调用顺序 `构建子类对象`一定会`先调用父类的构造函数` 子类`默认调用父类的无参构造`,也可以`指定调用父类的构造函数` 指定调用的方法是通过`初始化列表指定` `析构函数`的调用顺序`和构造函数调用相反` #include using namespace std; class A { int x;
2017-03-02 21:32:48    129    0    0
#IO流 ##标准输入输出对象 cout 有缓冲 可以直接重定向 cerr 无缓冲 不能直接重定向 clog 和编译器有关 不能直接重定向 cin ##UC那点东西 system(const char* cmd); // 可以执行终端中的指令 0 标准输入 1 标准输出 2 标准错误 > find / -name a.txt 2
2017-02-25 23:20:17    71    0    0
#异常 exception ##异常的作用 异常就是一种错误的表达形式 C语言中是通过返回值代表错误 ##C++中的默认异常错误处理 调用terminate函数`终止进程` #inlcude using namespace std; void foo() { /* 抛出异常123*/ throw 123; }
2017-02-23 22:24:51    117    0    0
#简化指针 使用typedif简化函数指针 > typedef void (*sighander_t)(int); // 函数指针重命名 ##操作指针调用虚表中的函数 #include using namesapce std; class Animal { public: virtual void run()
2017-02-21 22:33:01    363    0    0
#多态 ##概念 当`父类型的指针或引用指向子类对象`时,通过父类型的指针或引用调用`虚函数`,如果`子类重写了这个虚函数`,则调用的`表现是子类`的,`否则是父类的`. * `继承`是构成多态的`基础` * `虚函数`是构成多态的`关键` * `函数重写`是多态的必备`条件` ##举例 #include using namespace std; c
2017-02-19 17:03:20    79    0    0
#多继承 ##概念 一个类可以有多个直接父类 ##语法 > class Iphone:public Phone,public Camera,public Mp3 { } 父类`构造函数的调用顺序和继承顺序一致`,与其他无关 ##多继承引入的冲突问题 假如继承的3个父类都有一个函数叫getPrice(),子类在调用该函数时,会产生歧异,不知调用哪个getPrice(). 该问题的解决方案有
2017-02-16 20:47:48    147    0    0
#string类型的使用 ##构造函数 string() string(const char* str) ##拷贝构造函数 string(const string* s) ##析构函数 ~string() ##重载的运算符 operator == operator != operator = operator > operator < operator [] operator + operator += operator << operator >> ... ... ##成员函数 append() //
2017-02-16 16:12:07    157    0    0
#单目运算符重载 !(取反) ~(按位取反) -(负) ++(自增) --(自减号) >`#0` 默认操作符在前 操作数在后 先去0对象对应的类型中找一个成员函数叫`operator#()i` 如果找不到就去全局找一个全局函数`operator#(0)` `0#` 默认操作符在前 操作数在后(`典型后减减和后加加`) 先去0对象对应的类型中找一个成员函数叫`operator#(int)`
2017-02-11 22:42:01    29    0    0
#成员指针 ##成员变量指针 ###1. 概念 指向成员变量的指针 ###2. 语法 > 成员变量类型 类名::*指针名; class A { public: int x; int y; int z; }; /* 语法*/ int A::*pm; /* 如何赋值
2017-02-11 14:05:30    128    0    0
#拷贝构造函数 **1. 概念** 以复制的形式来构建对象 (使用一个已经存在的对象以复制的形式创建另外一个不存在的对象) 拷贝构造函数原型: class A { public: A(const A& a) { } }; **2. 拷贝构造调用时机** 以一个存在的对象去创建另外一个不存在的对象的时候 * 把一个对象传入一个`非引用类型的值i`
2017-02-07 21:08:07    149    0    0
**引用类型的成员---不要返回局部变量的引用** #include using namespace std; class A { int& x; public: /* 赋予了局部变量的引用*/ A(int x = 0):x(x) { } int& getX() { return x;
2017-02-06 19:59:47    80    0    0
# 一. C++的发展历史 83年 本贾尼 正式命名成c++ 87年 GNU 制定了C++标准 92年 微软\IBM 支持 98年 ansi/ISO 制定了C++标准 C++98 03年 ISO 制定了C++03 11年 ISO 制定了C++11(C++0x) g++ ***.cpp -std=c++0x # 二. C+
2017-02-06 19:59:43    87    0    0
#函数重载 **1.概念** 在`同一作用域`中`函数名相同参数列表不同`的函数构成重载关系,注意返回值不包含于参数列表 参数列表不同: * 参数个数 * 参数类型 * 参数顺序 **2.例子代码** #include using namespace std; /* 以下三个函数可以构成重载关系*/ int getm
2017-02-06 19:59:38    61    0    0
#C++中的类型转换运算符 **1. 静态转换** 在某一个方向上可以做自动类型转换(隐式类型转换) `int * -------> void * // 可以转换` `int * -------> int // 编译器报错` > static_cast<类型>(变量) 例子代码 #include using namespace std; void getDa
2017-02-06 19:59:32    242    0    0
# 构造函数 **1. 概念** 和类名相同的一个特殊函数,并且没有返回值类型. 构建对象时会自动调用一次 `目的是为了完成对象的初始化工作` **2. 例子代码** #include #include using namespace std; class Car { public: /* 特征*/