c++,父类引用指向子类对象,虚函数
2016-06-12 17:29
211 查看
c++有父类引用指向子类对象(面向对象的重要特点之一,java里是这样的!)
#include<iostream.h> class Father { public: Father() { f = 1; } void print() { cout<<"f = "<<f<<endl; } public: int f; };
#include<iostream.h> #include "Father.cpp" class Son : public Father { public: Son():Father() { s = 2; } void print() { cout<<"s = "<<s<<endl; } public: int s; }; int main() { Son s; s.print();//输出s = 2 Father& f = s;//这里如果直接用值,就是把“&”去掉,即使使用virtual也不会调用子类的方法,原因待解! f.print();//输出父类 f=1 f = s;//父类引用指向子类对象 f.print();//这里输出 f = 1;和java不一样,java里面则直接调用子类的方法,但是这里不是,这里调用的还是父类的,要让其自动调用子类的方法则需要将方法设置为虚函数,加关键字virtual ((Son&)f).print();//强制转换,输出 s = 2 return 0; }
相关文章推荐
- String to Integer (atoi)
- 实用的C++代码片段(1)-- 规范化通过getline获取的输入
- C语言 英汉互译电子词典 命令行,MFC,QT 3种版本
- c++中用new和不用new创建对象的本质区别
- this指针
- C++程序设计语言练习7.4 文件流标准库接口的使用
- c语言NULL和0区别及NULL详解
- Palindrome Number
- 学习笔记之高质量C++/C编程指南
- Roman to Integer
- C++ 21----- 用cin输入
- 【C/C++】浅谈sizeof
- 步步为营<二> C语言基本概念 和 数据类型
- c++之cpu使用率
- 浅谈C++中指针和引用的区别
- C++程序设计语言练习7.3 函数不定个数参数的写法和多参数处理接口
- 快排 cmp
- Longest Common Prefix
- C++ 默认构造函数的重要性
- 我的c++服务器记录----非阻塞下的socket读取操作