- 博客(11)
- 资源 (3)
- 收藏
- 关注
转载 虚函数与虚函数表
<br /> <br />C++中的虚函数的作用主要是实现了多态的机制。关于多态,简而言之就是用父类型别的指针指向其子类的实例,然后通过父类的指针调用实际子类的成员函数。这种技术可以让父类的指针有“多种形态”,这是一种泛型技术。所谓泛型技术,说白了就是试图使用不变的代码来实现可变的算法。比如:模板技术,RTTI技术,虚函数技术,要么是试图做到在编译时决议,要么试图做到运行时决议。<br />关于虚函数的使用方法,我在这里不做过多的阐述。大家可以看看相关的C++的书籍。在这篇文章中,我只想从虚函数的实现机制上
2011-04-30 09:40:00 719
原创 不调用库函数,实现strcpy函数
<br /> 这是昨天淘宝一面的题目。<br /> 已经忘记当场写的函数是什么样子了,回来后想想写下了这样一段代码。char* strcpy(char *src, char *des){ if(src == NULL || des == NULL){ cout<< "源和目的指针不能为空!"; return NULL; } for(;*src!='/0';src++) *des++ = *src; *des = '/0'; return des;
2011-04-26 16:54:00 9851 2
转载 用C++ 设计一个不能被继承的类。
<br />分析:这是Adobe 公司2007 年校园招聘的最新笔试题。这道题除了考察应聘者的C++ 基本功底外,还能考察反应能力,是一道很好的题目。在Java 中定义了关键字final ,被final 修饰的类不能被继承。但在C++ 中没有final 这个关键字,要实现这个要求还是需要花费一些精力。首先想到的是在C++ 中,子类的构造函数会自动调用父类的构造函数。同样,子类的析构函数也会自动调用父类的析构函数。要想一个类不能被继承,我们只要把它的构造函数和析构函数都定义为私有函数。那么当一个类试图从它那继
2011-04-23 13:05:00 794 1
原创 复习15:类的层次结构
15.1 引言和概述15.2 多重继承 使用多重继承可以用多个父类组合出子类。最常见的是继承多个抽象类,即实现多个接口。但使用多重继承也是有风险的,如可能存在歧义性。15.2.1 歧义性解析 两个父类中存在相同名字的成员,包括成员变量和成员函数,在子类中使用该名字就需要歧义性解析。有两种方法完成这项工作。 1. 子类重新定义了这个名字,遮蔽了父类信息,也遮蔽了歧义性。可以通过加上父类限制符的方式访问父类定义的名字。 2. 子类没有重新定义 这个名字,则需要通过父类
2011-04-22 01:46:00 789
转载 一道淘宝面试:不用条件和循环语句
<br /><br />写一个函数: int print_num(int k){}; 要求函数功能为打印k的降序,直到0结束,即如果k=5,即打印: 5 4 3 2 1 0 <br />要求: 不能用 if , if else, switch, ?: , while, for , do while, goto 语句<br />思路显然是递归了。<br /> <br />#include <iostream><br />#include <stdio.h><br />using namespace std;<
2011-04-20 20:33:00 866
转载 C++类型转换
<br /><br />转自:http://www.cppblog.com/elva/archive/2011/01/20/138950.html.<br /> <br />C++类型转换一共有4种:static_cast、const_cast、dynamic_cast、reinterpret_cast。<br />1、static_cast<br />用法:static_cast<type-id>(expression)<br />该运算符把expression转换为type-id类型,但没有运行时类型检
2011-04-20 16:02:00 435
转载 释疑volatile用法
<br />转自http://www.wangchao.net.cn/bbsdetail_74454.html.<br /><br />上午在CSDN的C++版逛时,发现有人在问volatile关键字的用义和用法。于是乎便写了这篇BLOG。<br /> 如果你懂一点点的编译器的知识我想你都会知道编译器在编译你的代码的时候,用进行自动优化的,用以产生优化指令。同上操作系统和一些线程同样也会对你所定义的一些变量做出一些你所不知道的更改。这样的更改我们称为,隐式修改,因为你不知道,编译器在什么情况下,在那里做出
2011-04-20 15:56:00 503
转载 Android下实现短信的收发
<br />转自http://www.oschina.net/bbs/thread/2568<br /> <br /> <br />发送短信相当的简单,只需要几行代码,如下:<br /><br />import android.telephony.gsm.SmsManager;<br />import android.app.PendingIntent;<br />......<br />SmsManager sms = SmsManager.getDefault();<br />PendingIntent
2011-04-17 00:59:00 653
转载 如何使Android应用程序获取系统权限
<br /><br />转自:http://blog.csdn.net/liujian885/archive/2010/03/22/5404834.aspx<br /> <br />在 android 的API中有提供 SystemClock.setCurrentTimeMillis()函数来修改系统时间,可惜无论你怎么调用这个函数都是没用的,无论模拟器还是真机,在logcat中总会得到"Unable to open alarm driver: Permission denied ".这个函数需要root权
2011-04-17 00:36:00 608
转载 Android权限机制总结与常见权限不足问题分析
<br /><br />转自:http://hi.baidu.com/donghaozheng/blog/item/23ca75ec0028bbdc2e2e21c5.html<br /> <br />Android系统是运行在Linux内核上的,Android与Linux分别有自己的一套严格的安全及权限机制,<br />很多像我这样的新手,尤其是习惯了windows低安全限制的用户,很容易在这方面弄混淆,下面是我总结的Android系统权限相关的内容,<br />作为这段时间对android权限学习的总结,
2011-04-17 00:32:00 610
原创 c++的位运算和逻辑运算
0. 因为很少使用位运算(与或非、移位以及对应的赋值操作),渐生一种神秘感,今天就把这层面纱揭去,看看他们的真面目。由于位运算和逻辑运算都有与或非操作,这里看看他们的区别。 0.1 引入这些运算的原因 c++继承自c,c使用位运算自然是为了提高效率,使得c可以像低级语言那样实现bit-level的操作。使用逻辑运算是为了控制程序流程。 0.2 编译器的优化 现代编译器的优化功能不容小视,下面的汇编代码都是编译器优化后产生的。这些优化有些使我们吃惊,但却解
2011-04-08 18:12:00 2650
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人