摘要: 题目:如题所示思路:看一个实例,1011*1010,由于二进制的特殊性,可以将该乘法运算表达式拆分为两个运算,1011*1000以及1011*0010的和,对于二进制运算,左移一位,等价于乘以0010,左移三位,等价于乘以1000,因此两者的乘积为10110+1011000之和,即为1101110.... 阅读全文
posted @ 2015-06-14 22:56 AndyJee 阅读(2438) 评论(0) 推荐(0) 编辑
摘要: 题目:如题所示思路:逻辑运算,即二进制运算,无外乎与&、或|、非~、异或^以及移位>>,using namespace std;// recursive methodint add_1(int num1,int num2){ if(num1==0) return num2; ... 阅读全文
posted @ 2015-06-14 22:38 AndyJee 阅读(5157) 评论(0) 推荐(0) 编辑
摘要: 主要内容:1、C++类继承中的构造函数和析构函数2、C++多态性中的静态绑定和动态绑定3、C++多态性中析构函数声明为虚函数1、C++类继承中的构造函数和析构函数在C++的类继承中,建立对象时,首先调用基类的构造函数,然后在调用下一个派生类的构造函数,依次类推;析构对象时,其顺序正好与构造相反;具体... 阅读全文
posted @ 2015-06-14 22:06 AndyJee 阅读(5010) 评论(1) 推荐(2) 编辑
摘要: 静态绑定和动态绑定是C++多态性的一种特性。1、对象的静态类型和动态类型:对象的静态类型:对象在声明是采用的类型,在编译期确定;对象的动态类型:当前对象所指的类型,在运行期决定,对象的动态类型可以更改,但静态类型无法更改。class B{};class C: public B{};class D: ... 阅读全文
posted @ 2015-06-14 20:38 AndyJee 阅读(4162) 评论(1) 推荐(2) 编辑
摘要: 思想:在C++的类继承中,建立对象时,首先调用基类的构造函数,然后在调用下一个派生类的构造函数,依次类推;析构对象时,其顺序正好与构造相反;例子:#include using namespace std;class Shape{public: void Draw() {cout<<"Base:... 阅读全文
posted @ 2015-06-14 17:28 AndyJee 阅读(11265) 评论(0) 推荐(1) 编辑
摘要: 1、和在你的编译器include文件夹里面可以看到,二者是两个文件,里面的代码是不一样的。后缀为.h的头文件c++标准已经明确提出不支持了,早些的实现将标准库功能定义在全局空间里,声明在带.h后缀的头文件里;c++标准为了和C区别开,也为了正确使用命名空间,规定头文件不使用后缀.h。因此,当使用时,... 阅读全文
posted @ 2015-06-14 16:58 AndyJee 阅读(1073) 评论(0) 推荐(0) 编辑
摘要: 题目:如题所示思路:与上一题要求不一样的是,这里是整数的除法,而不仅仅是正整数,因此需要对输入的两个数的正负性进行判断代码:#include using namespace std;int myDiv(int a,int b){ if(a==0) return 0; if(... 阅读全文
posted @ 2015-06-14 16:04 AndyJee 阅读(1218) 评论(0) 推荐(0) 编辑
摘要: 题目:如题所示思路:假设问题是a除以b:题目要求是正整数,所以考虑的条件不是很多,如果要求是整数的话,即要考虑正负情况的判断。1、最简单的就是依次用被除数a减去除数b,并统计减去的次数,即为相除结果;这种方法效率不高,尤其是在被除数a很大,除数b很小的情况下,效率非常低;2、考虑每次相减时,将b翻倍... 阅读全文
posted @ 2015-06-14 15:41 AndyJee 阅读(3817) 评论(0) 推荐(0) 编辑