c++多态性是依靠虚函数和父类指针指向子类对象来实现的.简单来说,父类中定义虚函数,父类指针指向子类对象,父类指针调用函数时调用的就是子类的函数. 父类没有定义虚函数,父类指针指向子类对象时,父类指针调用的函数还是父类的函数. dynamic_cast可以实现将子类指针动态转换成父类指针(相当于父类指针指向了子类对象),用dynamic_cast时,父类必须要有virtual声明的虚函数. 父类指针转换成子类指针(也就是子类指针指向了父类对象)是危险的,dynamic_cast失败会返回NULL…
#include<iostream> using namespace std; class Father { public: Father() { cout << "我是父类构造函数"; } ~Father() { cout << "我是父类析构函数 "; } virtual void print() { cout << "我是父类的函数"; } public: int f; protected:…
基类指针引用派生类对象 用基类指针引用一个派生类对象,由于派生类对象也是基类的对象,所以这种引用是安全的; 但是只能引用基类成员. 若试图通过基类指针引用那些只在派生类中才有的成员,编译器会报告语法错误. (解决该问题的答案是虚函数和多态性??? 这个说法不正确吧) 派生类指针引用基类的对象 用派生类指针引用基类的对象. 这种引用方式会导致语法错误. 派生类指针必须先强制转换为基类指针,这种方法是不安全的. 而在侯捷的<深入浅出MFC>中"第二章C++重要性质"中: 如果你…
看下面例子: #include "stdafx.h" #include <iostream> class A {  //父类 public: void  f()   //普通函数 { std::cout<<"A"<<std::endl; } void virtual vf()   //虚函数 { std::cout<<"virtual-A"<<std::endl;  } }; class…
#include <iostream> using namespace std; class Father { public: virtual void show() { cout<<"this is Father"<<endl; } }; class Son:public Father { public: virtual void show() { cout<<"this is Son"<<endl; }…
void CenterLayer::zhanzheng(CCObject* pSender){ ((GameScene*)this->getParent())->showLayer(GameScene::UI_SelectLayer); } 在这里 this->getParent() 会获得一个父类的一个node型指针,然后转换为父类类型,可以使用这个指针调用父类函数. _centerLayer=CenterLayer::create(); this->addChild(_cent…
关于OC中对象与指针的思考 1. 创建对象: OC中可通过代码Person *p = [[Person alloc] init];创建了一个对象p.该过程中内存情况为: 在当前线程的栈(默认1M)中,存在一个(Person *)类型的变量p,因为C语言中前面带*的变量都是指针变量,故也可理解为栈中有一个Person数据类型的指针变量p(p是指针,p不光自己有地址,它4B大小的空间中存储着别的变量的地址). 同时在ios系统管理的堆中(所有app共享)通过alloc分配了一块能装下Person数据…
Delphi动态事件深入分析 2009-2-7 作者:不得闲核心提示:本实验证明了在类中方法的调用时候,所有的方法都隐含了一个Self参数,并且该参数作为对象方法的第一个参数传递... 首先做一个空窗体,放入一Button.在implementation下面声明两个方法如下: // 外部方法,只声明一个参数,此时按照标准的对象内部事件方法TNotifyEvent声明,此声明中,Sender则对应为产生该事件的对象指针. procedure ExtClick1(Sender: TObject);…
关于CSS中的定位使用子绝父相(子类绝对位置和父类相对位置) 欢迎转发,但是请填写原博客地址https://www.cnblogs.com/JNovice/p/9536910.html  前言:最近在学习JavaWeb前端的CSS,关于CSS中的定位有时候可能会使用到子绝父相,由于本人的水平有限如果有什么地方说错了,请指出来我好进行及时地修改. 一.什么是CSS以及position (一) CSS概述 CSS是层叠样式表(英文全称:Cascading Style Sheets)是一种用来表现HT…
只要子类中出现了和父类中同名的函数,父类中的所有这个名字的函数,就被屏蔽了. 静态函数成员也是如此?经过代码验证,确实如此. #include <iostream> using namespace std; class A{ public: void print(){cout << "A::print()" << endl;} }; class B:public A{ public: void print(int i ){cout <<…