阿飛的博客

不积跬步,无以至千里;不积小流,无以成江海。

排序:
默认
按更新时间
按访问量

面向对象重写(override)与重载(overload)区别

一、重写(override) override是重写(覆盖)了一个方法,以实现不同的功能。一般是用于子类在继承父类时,重写(重新实现)父类中的方法。 重写(覆盖)的规则: 1、重写方法的参数列表必须完全与被重写的方法的相同,否则不能称其为重写而是重载. 2、重写方法的访问修饰符一定要大于被...

2016-03-24 10:54:37

阅读数:3251

评论数:0

C/C++程序设计基本概念

for循环的执行顺序 for循环的执行顺序用如下表达式: for(expression1;expression2;expression3) { expression4; } 执行的顺序应该是: 1)第一次循环,即初始化循环。 首先执行表达式expression1(一般为初始...

2016-03-23 22:06:23

阅读数:187

评论数:0

文本中字符个数统计

编程实现读取文本,计数文本中内容字符数,不计空格、标点和制表符等。 初试写程序,请指正。 #include #include #include using namespace std; int main() { ofstream wfile; ifstream r...

2016-03-21 21:24:54

阅读数:271

评论数:0

智能指针的理解

C++提供了4种智能指针用于对分配的内存进行自动释放,这些智能指针如下: auto_ptr、unique_ptr、shared_ptr、weak_ptr。其中auto_ptr在C++98标准引入,后三种在C++11标准中加入。而auto_ptr已经被C++11所摒弃,建议使用后三种智能指针,这4...

2016-03-21 20:42:24

阅读数:229

评论数:0

SQL基本知识

RDBMS是什么? RDBMS代表关系数据库管理系统。 RDBMS是SQL的基础,对于像MS SQL Server,IBM DB2,Oracle,MySQL和Microsoft Access等所有现代数据库系统。 一个关系数据库管理系统(RDBMS)是一个数据库管理系统(DBMS),基于关系...

2016-03-20 15:28:29

阅读数:194

评论数:0

引用常见问题与多态问题

多态,虚函数,纯虚函数 编译:包括编译和链接两个过程。 编译部分,是把源文件(代码)转换成机器可以识别的二进制语言,这个过程是针对每一个源文件的。 链接,是把编译生成的二进制文件,组合成为一个系统可以执行的可执行文件。 这两部分整体也叫编译。也就是说,广义的编译,就是把代码,转换成可执行文件。 ...

2016-03-20 10:26:10

阅读数:592

评论数:0

C++中有个malloc/free,为什么还需要new/delete?

首先认识C++内部数据类型和非内部数据类型 内部数据类型是编译器本来就认识的,不需要用户自己定义。 非内部数据类型不是编译器本来就认识的,需要用户自己定义才能让编译器识别运算符使用是否正确,编译器在编译扫描分析时就可以判定库函数是已编译的代码,编译器不会编译检查,由链接器将库同用户写的...

2016-03-19 23:08:46

阅读数:328

评论数:0

指针与数组不同的存储区域

首先要搞清楚char *str和char str[] char c[] = "hello world";是分配一个局部数组; char *c = "hello world";是分配一个全局数组。 局部数组是局部变量,它所对应的是内存中的栈。全局数组是全局变量...

2016-03-19 13:30:33

阅读数:144

评论数:0

编译时多态VS运行时多态

编译时多态: 函数重载实现多态 函数重载是这样一种机制:允许有不同参数的函数有相同的名字。具体一点讲就是,假如有如下三个函数: void test(int arg){} //函数1 void test(char arg){} //函数2 void test(in...

2016-03-19 11:49:15

阅读数:152

评论数:0

传递动态内存

传递动态内存: 下面5个幻术哪一个能够成功进行两个数的交换? #include using namespace std; void swap1(int p, int q) { int temp; temp=p; p=q; q=temp; }...

2016-03-18 21:35:47

阅读数:121

评论数:0

指针与引用的区别

1、非空区别 任何情况下都不能使用指向空值的引用。一个引用必须总是指向某个对象。因此如果你用一个变量并让它指向一个对象,但是该变量在某些时候可能不指向任何对象,这时应该把变量声明为指针,因为这样可以赋空值给该变量。相反,如果变量肯定指向一个对象,如设计不允许变量为空,这时可以把变量声明为引用。不...

2016-03-18 21:05:48

阅读数:143

评论数:0

http与https的区别

HTTPS(全称:Hypertext Transfer Protocol over Secure Socket Layer),是以安全为目标的HTTP通道,简单讲是HTTP的安全版。 在URL前加https://前缀表明是用SSL加密的。你的电脑与服务器之间收发的信息传输将更加安全。 Web...

2016-03-18 10:59:05

阅读数:113

评论数:0

C/C++程序的内存分配方式

1.内存分配方式 内存分配方式有三种: [1]从静态存储区域分配。内存在程序编译的时候就已经分配好,这块内存在程序的整个 运行期间都存在。例如全局变量,static变量。 [2]在栈上创建。在执行函数时,函数内局部变量的存储单元都可以在栈上创建,函数执 行结束时这些存储单元自动被...

2016-03-17 10:44:51

阅读数:170

评论数:0

编程实现strcpy函数功能(非库函数)

已知strcpy的原型是: char *strcpy(char *dst, const char *src); 1、实现strcpy函数 2、为什么要返回char * 3、假如要考虑dst与src内存重叠的情况,strcpy如何实现   1、strcpy函数的实现 char *strcpy(cha...

2016-03-14 19:34:49

阅读数:198

评论数:0

链表的基础操作

链表     链表的创建、插入节点、删除节点等操作比较简单,其代码量适合笔试和面试。     链表是有种动态数据结构,创建链表时,无须知道链表的长度。当插入一个节点时,只需为新节点分配内存,然后调整指针的指向来确保新节点被链接到链表中。内存分配不是在创建链表时一次性完成的,而是每添加一个节点分配一...

2016-03-14 15:53:44

阅读数:167

评论数:0

斐波那契数列

斐波那契数列定义为: ## 效率不高的解法: long long Fibonacci(unsigned int n) { if (n<=0) return 0; if (n==1); return 1; return ...

2016-03-14 14:46:31

阅读数:148

评论数:0

类String的构造函数、析构函数和赋值函数

海康威视16年春季校招编程题目 题目:编写类String的构造函数、析构函数和赋值函数,已知类String的原型为: class String {  public:   String(const char *str = NULL); // 普通构造函数   String(const St...

2016-03-13 15:06:37

阅读数:157

评论数:0

二进制中1的个数的算法

1、普通算法: int BitCount(unsigned int n) { unsigned int c =0 ; // 计数器 while (n >0) { if((n &1) ==1) // 当前位是1 ++c ;...

2016-03-12 21:33:33

阅读数:158

评论数:0

C++抽象类

C++抽象类 一、纯虚函数定义.      纯虚函数是在基类中声明的虚函数,它在基类中没有定义,但要求任何派生类都要定义自己的实现方法。在基类中实现纯虚函数的方法是在函数原型后加“=0” 二、引入原因: 1、为了方便使用多态特性,我们常常需要在基类中定义虚拟函数。 2、在很多情况下,基类本身生...

2016-03-12 21:05:39

阅读数:194

评论数:0

编程实现36进制和10进制之间的相互转换

36进制转换成10进制的方法,以R9和10Y为例 R9就是  27 * 36^1 + 9*36^0 =  981 10Y 就是 1* 36^2 + 0 * 36^1 + 34*36^0 =1330 10进制转换成36进制的方法,以1079和52360为例 (1079/36^0) % 36 =...

2016-03-12 14:06:27

阅读数:4873

评论数:0

提示
确定要删除当前文章?
取消 删除
关闭
关闭