随笔分类 - C++ OO研究
摘要:环境:XPSP3 VS2005 今天黑总给应聘者出了一个在C++的构造函数中调用虚函数的问题,具体的题目要比标题复杂,大体情况可以看如下的代码: [cpp] view plain copy class Base { public: Base() { Fuction(); } virtual void
阅读全文
摘要:今天做一个成绩管理系统的并发引擎,用Qt做的,仿照QtConcurrent搞了个模板基类。这里为了隐藏细节,隔离变化,把并发的东西全部包含在模板基类中。子类只需注册需要并发执行的入口函数即可在单独线程中执行。最终目标是,继承的业务逻辑类外部调用时有两个接口可选,调用syncRun同步执行;调用由引擎
阅读全文
摘要:【自序】虑而後能得(自序)故事接触 C++ 大约是 1989 年的事。那时候的 PC 以现在的眼光看,除了「蛮荒」之外没有更合适的形容词了。横扫千军的 Windows 3.0 还没有诞生,如今以 C++ 编译器技术闻名於世的 Borland 公司那个时候也还没有踏进 C++ 领域,遑论动作更慢的 M
阅读全文
摘要:(1) 重载的几个函数必须在同一个类中, 覆盖的函数必须在有继承关系的不同的类中, 隐藏也必须在有继承关系的不同的类中;(2) 覆盖的函数前必须加关键字Virtual;重载和Virtual没有任何瓜葛,加不加都不影响重载的运作,隐藏对virtual可有可无(3) 覆盖的几个函数必须函数名、参数、返回
阅读全文
摘要:http://blog.csdn.net/markl22222/article/details/5308167 http://blog.csdn.net/markl22222/article/details/5308167
阅读全文
摘要:#include <iostream> using namespace std; class DemoOne{ public: void f(bool someParm=true){ cout<<"DemoOne f functions\n";} void g(){ cout<<"DemoOne g
阅读全文
摘要:在C++中,存在类型转换,通常意味着存在缺陷(并非绝对)。所以,对于类型转换,有如下几个原则:(1)尽量避免类型转换,包括隐式的类型转换(2)如果需要类型转换,尽量使用显式的类型转换,在编译期间转换(3)避免使用reinterpret_cast和老式的强制类型转换操作符通常,隐式的类型转换会导致警告
阅读全文
摘要:C++中的虚函数的作用主要是实现了多态的机制。关于多态,简而言之就是用父类型别的指针指向其子类的实例,然后通过父类的指针调用实际子类的成员函数。这种技术可以让父类的指针有“多种形态”,这是一种泛型技术。所谓泛型技术,说白了就是试图使用不变的代码来实现可变的算法。比如:模板技术,RTTI技术,虚函数技
阅读全文
摘要:自从1993年Bjarne Stroustrup 〔注1 〕提出有关C++ 的RTTI功能之建议﹐以及C++的异常处理(exception handling)需要RTTI;最近新推出的C++ 或多或少已提供RTTI。 然而,若不小心使用RTTI,可能会导致软件弹性的降低。本文将介绍RTTI的观念和近
阅读全文
摘要:如摘要所说,C语言不支持OOP(面向对象的编程)。并这不意味着我们就不能对C进行面向对象的开发,只是过程要复杂许多。原来以C++的许多工作,在C语言中需我们手动去完成。 博主将与大家一起研究一下如下用C语言实现面象对象的编程。 面向对象的三大特性:封装、继承、多态 我们要达到的目的如下: Anima
阅读全文
摘要:下面讨论的都是类的非静态成员函数。 类成员函数指针的声明及调用: 1 2 3 4 5 6 7 //pr是指向Base类里的非静态成员函数的指针 //其行参为(int, int),返回值为void void (Base::*pr)(int, int); //需通过对象调用 //object是Base类
阅读全文
摘要:c++实现游戏开发中常用的对象池(含源码) little_stupid_child2017-01-06上传 little_stupid_child2017-01-06上传 对象池的五要素: 1.对象集合 2.未使用对象索引集合 3.已使用对象索引集合 4.当前使用量 5.最大使用量 http://d
阅读全文
摘要:1、抽象类里面可以有非抽象方法但接口里只能有抽象方法声明方法的存在而不去实现它的类被叫做抽像类(abstract class),它用于要创建一个体现某些基本行为的类,并为该类声明方法,但不能在该类中实现该类的情况。不能创建abstract 类的实例。然而可以创建一个变量,其类型是一个抽像类,并让它指
阅读全文
摘要:Virtual是C++ OO机制中很重要的一个关键字。只要是学过C++的人都知道在类Base中加了Virtual关键字的函数就是虚拟函数(例如函数print),于是在Base的派生类Derived中就可以通过重写虚拟函数来实现对基类虚拟函数的覆盖。当基类Base的指针point指向派生类Derive
阅读全文
摘要:结构是一种用关键字struct声明的自定义数据类型。与类相似,也可以包含构造函数,常数,字段,方法,属性,索引器,运算符和嵌套类型等,不过,结构是值类型。 1.结构的构造函数和类的构造函数不同。 a.结构不能包含显式的无参数构造函数。结构成员将自动初始化为它们的默认值。 b.结构不能包含以下形式的初
阅读全文
摘要:原文:VC8_Object_Layout_Secret.html 哈哈,从M$ Visual C++ Team的Andy Rich那里又偷学到一招:VC8的隐含编译项/d1reportSingleClassLayout和/d1reportAllClassLayout。看个复杂的例子吧(如下),现在假
阅读全文
摘要:C++交流群: 302558294(欢迎你的加入) 原文地址:http://blog.csdn.net/jiadebin890724/article/details/7951461#comments ,感谢原作者总结分享 首先要明确: 1、每个析构函数(不加 virtual) 只负责清除自己的成员。
阅读全文
摘要:例如: class a {public: int aa}; class b:public a {public: int bb; } 从内存的来看 如a ---------| |占一个int数据大小--| | (aa数据) | |--------- 而b则是 ---------|--------- |
阅读全文
摘要:C++支持函数重载,所谓重载就是在同一命名空间内,函数名相同,参数不同(参数个数或参数类型不同)的函数可以共存。但是若参数和函数名相同的话,编译器会报错不能重载。但是现实中,有时候仅仅需要返回类型不同的的函数,而这种情况C++又不支持重载,如: [cpp] view plain copy typed
阅读全文
摘要:大家对虚表并不陌生,都知道每个含有虚函数的类对象都有1个虚指针,但是在现实使用中,却总是因为这而调试半天,才发现原来是虚指针惹的祸。我这几天在调试代码时候也中招了,我的问题是这样的,如下图,CTree是最底层基类(非虚类), CSamplerTree(虚类)派生自CTree,CMSamplerTre
阅读全文