条款01:视C++为一个语言联绑C++的四个语言层次:C:C++是以C为基础的。基本数据类型、语句、预处理器、数组、指针等统统来自C。Oject-Oriented
C++:面向对象这一特性包含了:类,封装,继承,多态,虚函数等Template C++:C++的泛型编程能力。STL:一个标准的temp...
分类:
编程语言 时间:
2014-05-22 03:36:57
阅读次数:
338
转自:http://blog.csdn.net/Solstice/archive/2008/10/13/3066268.aspx这是一篇比较情绪化的blog,中心思想是“继承就像一条贼船,上去就下不来了”,而借助boost::function和boost::bind,大多数情况下,你都不用上贼船。b...
分类:
其他好文 时间:
2014-05-22 02:12:42
阅读次数:
287
虚函数:
1.虚函数的思想借鉴于Simula语言,可以实现运行的多态。虚函数允许派生类重载、覆盖,即使访问对象所使用的指针类型是基类型,但依旧能调用派生类的相应函数。当使用对象指针或对象引用调用虚函数时,采用动态绑定技术。
2.virtual 关键字只能用在虚函数的声明中,在函数的定义中不能使用 ....
分类:
编程语言 时间:
2014-05-20 13:23:11
阅读次数:
280
如何确定变量的内存布局为什么不直接执行buff里面的shellcode,而要绕远因为虚表指针指向buff,buff的地址还要指向另一个地址,没有办法直接执行buff。这是由虚函数与虚表性质决定。为什么执行完call还必须返回shellcode,call不就是call进shellcode吗?call是...
分类:
其他好文 时间:
2014-05-20 08:28:51
阅读次数:
283
1.
抽象类法(VCL不推荐);第一,允许创建抽象类对象,因为语法没问题,但允许其错误。第二,接口更好。第三,如果是混合抽象类,则推荐Place Holder方法2.
Place Holder(占位):父类虚拟函数为空白函数,但不是抽象方法。例如TCanvas。避免了抽象类的缺点3. 逐渐增加法:子...
分类:
其他好文 时间:
2014-05-19 23:15:49
阅读次数:
374
第十三章 虚函数1. 指向对象的指针常用不常用?????????2. 虚函数virtual
体现虚函数的 多态性(动态联编)存储不同对象的指针调用不同类的函数3. 拳击游戏4.
继承是否可以实现多态性继承无法实现多态,要想实现多态就要在基类加virtual5. 在编译时的静态联编6. 在运行时的静态...
分类:
其他好文 时间:
2014-05-19 16:09:34
阅读次数:
235
面向对象编程--再谈文本查询示例[续/习题]//P522 习题15.41
//1 in TextQuery.h
#ifndef TEXTQUERY_H_INCLUDED
#define TEXTQUERY_H_INCLUDED
#include
#include
#include
#include
#include
#include
#include
#include
usin...
分类:
编程语言 时间:
2014-05-18 18:41:59
阅读次数:
454
C++对象模型内存布局如下:
非静态数据成员在对象之内静态数据成员在对象之外静态、非静态成员函数在对象之外类中存在虚函数时,一个类对应一个virtual table放在对象之外,对象中安插一个指针vptr指向这个表。
测试例程:
#include
using namespace std;
class A {
public:
int x, y;
static...
分类:
编程语言 时间:
2014-05-18 07:46:31
阅读次数:
234
面试中有关C++的若干问题By 晴天,
2014.5.16晚什么是多态?简要说一下C++中的多态的概念。(1)定义:多态是指相同对象收到不同消息或者不同对象收到相同消息产生不同的行为。(2)C++中多态分为两种a)
编译时多态(静态绑定) 通过函数重载来实现b) 运行时多态(动态绑定) 通过虚函数来...
分类:
编程语言 时间:
2014-05-17 20:34:07
阅读次数:
347
c++是一种面向对象的编程语言的一个很明显的体现就是对继承机制的支持,c++中继承分很多种,按不同的分类有不同分类方法,比如可以按照基类的个数分为多继承和单继承,可以按照访问权限分为public继承、protected继承和private继承,按照是否是虚拟继承可以分为virtual继承和non-v...
分类:
编程语言 时间:
2014-05-16 03:30:01
阅读次数:
411