博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
C++ mechanisms for polymorphism
阅读量:4337 次
发布时间:2019-06-07

本文共 811 字,大约阅读时间需要 2 分钟。

Explicit programmer-specified polymorphism

You can write f() such that it can operate on multiple types in any of the following ways:

  • Preprocessing:

    #define f(X)((X)+=2)// (note: in real code, use a longer uppercase name for a macro!)
  • Overloading:

    void f(int& x){
    x +=2;}void f(double& x){
    x +=2;}
  • Templates:

    template
    void f(T& x){
    x +=2;}
  • Virtual dispatch:

    structBase{
    virtualBase&operator+=(int)=0;};struct X :Base{
    X(int n): n_(n){
    } X&operator+=(int n){
    n_ += n;return*this;}int n_;};struct Y :Base{
    Y(double n): n_(n){
    } Y&operator+=(int n){
    n_ += n;return*this;}double n_;};void f(Base& x){
    x +=2;}// run-time polymorphic dispatch

     

转载于:https://www.cnblogs.com/invisible/archive/2013/04/04/2999761.html

你可能感兴趣的文章
一般处理程序在VS2012中打开问题
查看>>
C语言中的++和--
查看>>
thinkphp3.2.3入口文件详解
查看>>
POJ 1141 Brackets Sequence
查看>>
Ubuntu 18.04 root 使用ssh密钥远程登陆
查看>>
Servlet和JSP的异同。
查看>>
虚拟机centOs Linux与Windows之间的文件传输
查看>>
ethereum(以太坊)(二)--合约中属性和行为的访问权限
查看>>
IOS内存管理
查看>>
middle
查看>>
[Bzoj1009][HNOI2008]GT考试(动态规划)
查看>>
Blob(二进制)、byte[]、long、date之间的类型转换
查看>>
OO第一次总结博客
查看>>
day7
查看>>
iphone移动端踩坑
查看>>
vs无法加载项目
查看>>
Beanutils基本用法
查看>>
玉伯的一道课后题题解(关于 IEEE 754 双精度浮点型精度损失)
查看>>
《BI那点儿事》数据流转换——百分比抽样、行抽样
查看>>
哈希(1) hash的基本知识回顾
查看>>