C++对象模型(五)

函数语义学:

一.静态类型和动态类型:

静态类型:对象定义时的类型,编译期就能确定的

动态类型:对象目前所指向的类型(运行的时候才决定的类型);一般只有指针和引用才有动态类型的说法

二.静态绑定和动态绑定:

静态绑定:绑定的是静态类型,所对应的函数或者属性依赖于对象的静态类型,发生在编译期

动态绑定:绑定的是动态类型,所对应的函数或者属性依赖于对象的动态类型,发生在运行期

1)普通函数是静态绑定,虚函数是动态绑定

2)缺省参数一般是静态绑定{

Class A{

Public:

Virtual fun(int I = 1){std::cout << A << I;}

}

Class B:public A{

Public:

Virtual fun(int I = 2){std::cout << B << I;}

}

}

A* a = new B();

a->fun() 会显 B 1;

三.虚函数的动态绑定:

虚函数的动态绑定,却决于虚函数调用者的动态类型

四.C++中多态性的体现

走的是通过虚函数表来找到虚函数入口地址再去执行函数的,是多态

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值