NVI
来源:互联网 发布:golang time.after 编辑:程序博客网 时间:2024/06/07 03:11
这是我写的简易版的, Effective C++, 3rd Edition, Item 35: 考虑可选的 virtual functions(虚拟函数)的替代方法
#include<iostream>//item 35using namespace std;/*------------------NVI--------------------*/class A{public: void f() { f1(); cout << "f"; }private://protected: virtual void f1() { cout << "A::f1"; }};class B : public A{//public: virtual void f1() { cout << "B::f1"; }};
书上的程序
/*virtual*/class GameChareter1{public: virtual int healthVaule()const;};/*strategy*/class GameChareter{public: typedef int (*GameHealthCalcFcn) (GameChareter);// '*' zai qianmian GameChareter(GameHealthCalcFcn ht = defaultHealht): health(ht) { } int healthvaule()const { return health(*this);//this is a fucking fcn }private: GameHealthCalcFcn health; };
//类里面什么都没有(关于血量),这样只有通过一个指针调用类外函数,来返回当前血量,
//而且你也必须在类外定义掉血方式,这样一来,用过指针调用的函数,又有定义多个的必要了
//
//定义类外函数,然后把指针返回给类内指针,才是正道,把定义的函数指针,来创建函数是错误的想法
0 0
- NVI
- NVI
- Effective C++ NVI手法
- centos安装NVI驱动
- NVI(Non-Virtual Interface )
- 【effective C++】NVI继承下,
- C++中的PIMPL和NVI
- 启用NVI的NAT的配置示例
- NVI和函数指针代替虚函数
- Cisco NAT --- ip nat enable NVI方式
- 用NVI(Non-Virtual Interface) 模式强化依赖倒置
- CPP的接口非虚原则(NVI)
- 道里云公司网络虚拟化架构NVI技术开放源代码--序言
- 启用静态NVI的NAT的配置步骤及示例
- 启用动态NVI的NAT的配置步骤及示例
- Cisco nat inside接口,outside接口,nvi接口的区别
- Linux实现基于Loopback的NVI(NAT Virtual Interface)
- 编写一个Linux虚拟网卡来实现类NVI
- Java中关于异常的一些问题(一)
- Java 线程池原理解析(一)
- Mac下Maven的安装和配置
- hihoCoder 1015 KMP算法(kmp)
- Java学习-10天
- NVI
- 自定义控件之ProgressBar
- UVA 1395Slim Span(生成树)
- MyBatis学习总结(八)——Mybatis3.x与Spring4.x整合
- 数学题
- 51Nod-1018-排序
- 关于fork函数的使用问题
- select, poll, epoll
- Linux 内核学习——系统调用(fork)