抽象函数与抽象类

本文探讨了C#与C++中抽象函数的区别,包括纯虚函数的概念及其使用方式,并讨论了这两种语言中抽象类的特点及其实现机制。

原则:

 

1、抽象函数对应于C++中的纯虚函数,

虚函数:是有具体实现,可以在子类中重写的函数

纯虚函数(抽象函数):没有任何实现,在子类中必须的进行重写才能实例化(子类是抽象类时除外)

 

2、含有抽象函数的类,必然是抽象类

假设能够实例化,那实例化的对象调用这个函数的时候,执行什么代码呢?

 

3、纯虚函数=0写法的改变

从这个写法的改变,说明了C#中默认构造函数的功能不同

C++中的默认构造函数只能提供0意义的初始值

C#中的默认构造函数出了能够提供0意义的初始化值之外,还能根据类定义中给出的初始化值来进行构造

class A

{

    public int i = 1;

    public void fun(){}

}

在C++中,出了静态数据成员能够这样(同时也是必须)给出初始化值,其他普通数据成员必须在构造函数中进行初始化。

 

所以因为C#中给了数据成员这样赋初始化值的语法形式,为了避免形式的混乱,所以取消了抽象函数(纯虚函数)=0的语法形式的

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值