1. 说说简单的函数回调首先说说一种简单的函数回调机制(一种通过获取对象的指针来进行函数的调用方法)以下是代码演示---这是观察者(被回调)部分:class Observer{public: // 抽象观察者的纯虚函数 virtual void UpdateMessage() = 0;};class...
分类:
编程语言 时间:
2014-07-15 08:07:58
阅读次数:
324
Python
Python是一种面向对象语言。能够把用其他语言(尤其是c/c++)制作的各种模块联结在一起。Python在执行时,首先会将 .py文件中的源代码编译成Python的 byte code(字节码),然后在由Python virtual machine来执行这些编译好的字节码文件按。基于c的Python编译出的字节码文件,通常是.pyc格式。
MFC Microsoft Fou...
分类:
编程语言 时间:
2014-07-14 13:57:08
阅读次数:
285
经验:多重继承比单一继承复杂。它可能导致新的歧义性,以及对 virtual 继承的需要
示例:
class BorrowableItem{
public:
void checkOut();
};
class ElectronicGadget{
private:
bool checkOut() const;
};
class MP3Player:
public BorrowableItem
public ElectronicGadget
{...};
MP3Player mp;
mp.checkOut...
分类:
编程语言 时间:
2014-07-14 13:38:11
阅读次数:
240
经验:class 和 templates 都支持接口和多态。
对 classes 而言接口是显式的,以函数签名为中心。多态则是通过 virtual 函数发生于运行期
对 templates 参数而言,接口是隐式的,奠基于有效表达式。多态则是通过 templates 具体化和函数重载解析(function overloading resolution)发生于编译期。
示例1:显式接口和运行期多态
class Widget{
public:
Widget();
virtual ~Widget();
vir...
分类:
编程语言 时间:
2014-07-14 12:54:57
阅读次数:
195
TreeYou are to determine the value of the leaf node in a given binary tree that is the terminal node of a path of least value from the root of the bin...
分类:
其他好文 时间:
2014-07-13 21:24:22
阅读次数:
202
代理设计模式,这个模式很多用于服务器客户端之类的,上网也经常使用代理之类的,想起来感觉是很复杂的,不过这个设置模式本身是很简单的。
就是一个类调用另外一个类的函数,客户调用的是一个类,而实际的工作是由另外一个类做的。
体现这个设计模式的代码:
#include
class RealObj
{
public:
virtual void handleReq() = 0;
};...
分类:
其他好文 时间:
2014-07-13 17:30:48
阅读次数:
188
接口继承和实现继承不同。在 public 继承下, derived classes 总是继承 base class 的接口
class Shape{
public:
virtual void draw() const = 0;
virtual void error(const std::string &msg);
int objectID() const;
//...
};
class Rectangle: public Shape{...};
class Ellipse: public Sha...
分类:
编程语言 时间:
2014-07-12 23:42:27
阅读次数:
251
经验:绝对不要重新定义继承而来的 non-virtual 函数 --> Item 7 "为多态基类声明 virtual 析构函数" 是本条款的特例
示例:
class B{
public:
void mf();
//...
};
class D: public B{
public:
void mf(); // 遮掩了B::mf,Item 33 名称遮掩规则
}
D x;
B *pB = &x;
D *pD = &x;
pB->mf(); // 调用 B::mf
pD->mf(); // 调用 ...
分类:
编程语言 时间:
2014-07-12 19:09:10
阅读次数:
234
经验:derived classes 内的名称会遮掩 base classes 内的名称。在 public 继承下从来没有人希望如此。
C++ 的名称遮掩规则所做的唯一事情就是: 遮掩名称
derived class 作用域被嵌套在 base class 作用域里
class Base {
private:
int x;
public:
virtual void mf1() = 0;
virtual void mf1(int);
virtual void mf2();
void mf3();
v...
分类:
编程语言 时间:
2014-07-12 19:05:42
阅读次数:
224
internal
声明类、类成员、接口或接口成员具有内部可见性。
internal 修饰符使类、接口或成员仅在当前包中可见。 当前包之外的代码不能访问 internal 成员。只有在同一程序集的文件中,内部类型或成员才是可访问的
在全局范围内,internal 修饰符与 public 修饰符相同。
不能将 internal 修饰符与其他任何可见性修饰符(public、private 或...
分类:
其他好文 时间:
2014-07-12 18:38:38
阅读次数:
228