C++中的继承与多态
来源:互联网 发布:php rides 缓存 编辑:程序博客网 时间:2024/06/15 02:55
C++中,多态性仅用于通过继承而相关联的类型的引用或指针,继承一般使用非虚函数,多态一般使用虚函数。
C++的函数调用默认不使用动态绑定,要触发动态绑定,必须满足两个条件:
1. 只有指定为虚函数的成员函数才能进行动态绑定,成员函数默认为非虚函数,非虚函数不能进行动态绑定;
2. 必须通过基类类型的额引用或指针金鑫函数调用。
以上摘录自:《C++ primer》
下面实际代码如下:
//头文件#pragma onceclass Base{public:Base(void);~Base(void);virtual void print();void name();protected:int data;};//son1 继承自Base类class son1:public Base{public:son1 (); ~son1();void print();void name();};
//Base.cpp 文件#include "Base.h"#include <iostream>Base::Base(void):data(5){}Base::~Base(void){}void Base::print(){std::cout<<"Base print"<<std::endl;}void Base::name(){ std::cout<<"My name is Base "<<std::endl;}//son1.cpp 文件son1::son1(){}son1::~son1(){}void son1::print(){std::cout<<"Son1 print"<<std::endl;}void son1::name(){ std::cout<<"My name is Son1 "<<std::endl;}
// TemplatePattern.cpp : 定义控制台应用程序的入口点。//#include "stdafx.h"#include "Base.h"void print_test( Base& b){ b.name();b.print();}int _tmain(int argc, _TCHAR* argv[]){ Base b; son1 s1; print_test(s1); s1.name();return 0;}
输出结果为:
0 0
- C中的继承与多态
- Objective-C中的继承与多态, Category, Extension
- C++--继承与多态
- C中的继承和多态
- C#中的接口和继承多态
- C中的继承和多态
- C中的继承和多态
- C中的继承和多态
- C中的继承和多态
- C中的继承和多态
- C中的继承和多态
- C中的继承和多态
- C中的继承和多态
- 【继承与多态】C++:继承中的赋值兼容规则,子类的成员函数,虚函数(重写),多态
- 【继承与多态】C++:继承中的赋值兼容规则,子类的成员函数,虚函数(重写),多态
- 程序设计基石与实践系列之C中的继承和多态
- Java中的继承与多态
- Java中的继承与多态
- 备不需:简单git用法
- P202 10
- About Longest Palindromic Substring
- CMFCPropertyGridCtrl,CMFCPropertyGridProperty 响应消息
- 关于wcf添加服务引用失败,客户端与服务端不一致,415错误码
- C++中的继承与多态
- OpenCV直方图计算匹配方法详解calcHist
- 第11周-继承与派生-项目3-职员有薪水啦
- 15第十一周项目三——点类派生直线类
- gem install rails 安装失败
- php 验证码
- linux应用开发-内存共享
- matlabt若干舍入方法的介绍
- 【几何】[CQOI]RGB