[原]静态类型和动态类型

概念解释:
1。所谓静态类型:就是在声明时所采用的类型,仅仅是程序文本上表现出来的类型。
2。所谓动态类型:就是将来对象将要表现的的类型,也可以说时运行时表现的类型。

好了,概念已经解释完了。那么这两个概念有什么现实的意义呢?
1。效率:
在效率上静态类型要比动态类型快得多;
2。设计:
在设计时候往往把接口中得对象类型声明为BaseClass类型得指针或引用,但是运行时候该对象有可能是该BaseClass的DerivedClass,这种特性在设计接口时是非常重要的。可以说,正式有了这种特性才能够把“接口”和“实现”解藕。
在设计上另一个突出的应用时FactorClass,大多数实现FactorClass类的时候,都会实现Create函数(或相同语义函数),该函数的返回类型一般都是BaseClass,这样运行时,函数内部返回DerivedClass时候,虽然声明为BaseClass但是真正的类型仍是DerivedClass。

例子:
class Person:{.......};
class Student: Public Person{......};
class Teacher: Public Person{......};

int main(void)
{
Person *pStudent = new Student;
Person *pTeacher = new Teacher;
return 0;
}
这个例子中:pStuent 和 pTeacher的静态类型都是Person,但是它们的动态类型分别是Stuent和Teacher。所以可以看出静态类型仅仅是一种语义上的表示,真正起作用的还是动态类型。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值