C++
祝我万瘦不胖
希望
展开
-
浅谈为什么拷贝构造函数传引用
Date d3=(1990,3,8);//构造一个对象 Date d1=d3;//调用拷贝构造函数 (1) Date(const Date d) {} 分析: 通过d3来创建d1;调用拷贝构造函数 现在这样拷贝的话,就是先通过d3创建一个临时的拷贝d,这个过程也是通过一个已存在的对象创建一个对象,调用拷贝构造函数 不停的调用拷贝构造函数,无穷的递归,程序出错 (2) Date(c原创 2016-10-22 12:27:10 · 816 阅读 · 0 评论 -
单链表面试题(一)
在面试中单链表的面试题是非常多的,这里对单链表的面试题做一个简单的总结。在单链表面试题中,在没有说明的情况下,默认为无头单链表。由于重点不在于单链表实现,这里就不给出单链表实现,只给出单链表节点定义如下:typedef int DataType;typedef struct SLinkNode{ DataType data; struct SLinkNode* next;}SL原创 2017-04-04 21:59:04 · 289 阅读 · 0 评论 -
动态多态——虚函数
使用平台:vs2013动态多态动态绑定:在程序执行期间,判断所引用对象的实际类型,根据实际的类型调用相应的方法。动态绑定的条件: 1. 必须是虚函数; 2. 通过基类类型的引用或者指针来调用虚函数。对于有虚函数的类,编译器都会维护一张表,对象的前四个字节就是指向虚表的指针。重写(覆盖):不再同一作用域(分别在基类和派生类);函数名相同,参数列表相同,返回值相同(协变和析构原创 2017-03-11 13:52:43 · 327 阅读 · 0 评论 -
引用和指针
使用平台:VS2013引用概念: 引用不是新定义一个变量,而是给已存在的变量去了一个别名,编译器不会为引用变量开辟内存空间,它和引用变量共用同一块内存空间。引用特性:引用在定义时必须初始化;一个变量可以有多个引用;引用一旦绑定了一个实体,就不能再改变为其他变量的引用。注意:不要返回栈内存的作用域;引用时类型必须是同一种类型;临时对象具有常性。常引用:如果用变量初始化const型的引原创 2017-03-04 17:01:26 · 204 阅读 · 0 评论 -
菱形继承和菱形虚拟继承探索
使用平台:vs2013 单继承&多重继承: 1. 单继承–一个子类只有一个直接父类时称这个继承关系为单继承 2. 多继承–一个子类有两个或以上直接父类时称这个继承关系为多继承 有了多继承,必然就会出现菱形继承 菱形继承: 菱形继承对象模型class AA{//在这里只研究菱形继承的对象模型,为了方便研究,将访问限定符规定为public(便于在类外对成员变量赋值)public:原创 2017-02-16 01:34:49 · 306 阅读 · 0 评论 -
模板实现Vector
模板 模板是泛型编程的基础。所谓泛型编程就是编写与类型无关的逻辑代码,是一种复用的方式。模板分为模板函数和模板类。模板实现Vector优点 通过使用模板实现Vector可以提高代码的复用度,原先在实现Vector只能定义一种具体类型,如果要再定义另外一种类型,必须将代码重新修改一遍,通过模板实现Vector解决了代码复用度低的问题。头文件部分:#include <iostream>using原创 2017-02-20 15:26:45 · 1600 阅读 · 0 评论 -
斐波那契数列的递归实现和非递归实现
定义为_Longlong类型,主要是避免越界 斐波那契数列的递归实现_Longlong Fib1(size_t n){ if (n < 2) return n; else return Fib1(n - 1) + Fib1(n - 2);}非递归实现_Longlong Fib2(size_t n){ _Longlong *FibArr原创 2016-11-26 19:28:06 · 286 阅读 · 0 评论 -
二分查找的递归和非递归实现
二分查找:注意实在有序数组中进行查找非递归实现int BinaryFind1(int arr[],int left,int right,int data){ int mid =(left&right)+((left^right)>>1); while (left <= right) { if (arr[mid] == data) re原创 2016-11-26 19:23:46 · 228 阅读 · 0 评论 -
实现电子时钟,每隔一秒更新一个显示
实现平台:VS 2013,不同的平台,头文件可能会有所不同,在此处注意Windows下清屏为“cls”,睡眠为Sleep()等。 头文件部分#define _CRT_SECURE_NO_WARNINGS 1#include <iostream>using namespace std;#include<time.h>#include<iomanip>#include<windows.h>时原创 2016-11-19 17:22:21 · 3664 阅读 · 0 评论 -
判断一个数是不是2的幂类似问题
问题描述:判断n是否为2的幂次。class Solution {public: bool isPowerOfTwo(int n) { if(n<=0) return false; return ((n&(n-1))==0);//n&(n-1)去除n最低位的一个1 }};问题描述:判断一个数是否为3的幂。class Solut原创 2017-10-29 19:53:20 · 289 阅读 · 0 评论