摘要:
#include struct I_Pro{ virtual void fun() = 0;};class A : public I_Pro{public: virtual void fun();};void A::fun(){ std::cout createPro(2); ... 阅读全文
摘要:
静下心来提升自己。我之所以火的纠结是因为既想得到别人的认可,又无法静下心来提升自己 阅读全文
摘要:
程序设计的三种典范(c++对象模型)1.程序模型就像c中那也的str*系列的函数如:char boy[] = "wcfsf";char p = new char[strlen(boy) + 1];strcpy(p, boy);感觉这个就是在函数内部实现的,没有什么封装的概念2.抽象数据类型(ADT)... 阅读全文
摘要:
不同类型的指针int *pvoid *pZooAnimal* p这个问题由来已久,各种类型的指针,内存中只是一个4个字节存储的地址,那怎么区分呢主要是其寻址出来的object类型不同,指针类型会教导编译器如何解释某一个特定地址中的内容和大小,我突然想到了汇编中哪些寻址,这个指针的寻址和那个肯定有关系... 阅读全文
摘要:
//这个例子让我想起了mongo如何突破32的限制#include class stumble{public:protected:private: //对于class一样的访问权限的数据成员是放在一起的,但不同的权限不是一样的 char pc[1];//好像protected放在priv... 阅读全文
摘要:
覆盖与重写可以说是一样的,但与重载不同。override(重写)是指在不同作用域中,多个函数原型完全一样,而实现却不同的函数。在C++中,经常发生在类的继承中。当基类中的某个方法是virtual或pure virtual函数时(当然访问权限必须是public或protected,因为从C++设计思想... 阅读全文
摘要:
在C++中,什么叫做钻石问题(也可以叫菱形继承问题),怎么避免它?下面的图表可以用来解释钻石问题。假设我们有类B和类C,它们都继承了相同的类A。另外我们还有类D,类D通过多重继承机制继承了类B和类C。因为上述图表的形状类似于钻石(或者菱形),因此这个问题被形象地称为钻石问题(菱形继承问题)。现在,我... 阅读全文
摘要:
虚继承(个人感觉用到的地方不多,项目中没有用到这个的)最典型的例子就是iostream的继承方式class istream : virtual public ios{...};//此处就是虚继承,指定ios为虚基类class ostream : virtual public ios{...};cla... 阅读全文
摘要:
/*对于此类的模型为:class object{ float _x;//类的nonstatic成员函数 _vptr_Point;//指向虚函数表的指针}virtual table//虚函数表的信息(应该存放的是一些指针)slot1---type info for Point(用于支持RT... 阅读全文
摘要:
虚函数为了重载和多态的需要,在基类中是有定义的,即便定义是空,所以子类中可以重写也可以不写基类中的此函数!纯虚函数在基类中是没有定义的,必须在子类中加以实现,很像java中的接口函数!虚函数引入原因:为了方便使用多态特性,我们常常需要在基类中定义虚函数。class Cman{public:virtu... 阅读全文