virtual、inline、interface、override、public系列修饰符之间函数关系
来源:互联网 发布:颈椎牵引知乎 编辑:程序博客网 时间:2024/05/16 07:49
1、 什么函数不能成为虚函数?
构造函数
内联函数(因为没有函数地址,在编译时插入,是个静态行为)
静态成员函数(因为: 静态成员函数类似于全局函数,不过是属于相应类的, 在相应类的作用域下,没有this指针)
答::虚函数的概念:
虚函数是动态联编的基础,它是引入派生概念之后用来表现基类和派生类成员函数之间的一种关系的。
虚函数在基类中定义,它也是一种成员函数,而且是非静态成员函数。
若一个实例方法的声明中含有virtual修饰符,则称该方法为虚拟方法;一个虚拟方法的实现可以由派生类取代。
取代所继承的虚拟方法的实现的过程称为重写(覆盖)该方法;在一个虚拟方法调用中,
该调用所涉及的那个实例的运行时类型确定了要被调用的究竟是该方法的哪一个实现。
虚函数的限制:
1).虚函数仅适用于有继承关系的类对象, 所以只有类的成员函数才能说明 为虚函数.
2).静态成员函数不能是虚函数.
3).内联函数不能是虚函数.
4)构造函数不能是虚函数.
5).析构函数可以是虚函数.
接口可以有静态成员、嵌套类型、抽象、虚拟成员、属性和事件。
实现接口的任何类都必须提供接口中所声明的抽象成员的定义。
接口可以要求任何实现类必须实现一个或多个其他接口。
对接口有以下限制:
接口可以用任何可访问性来声明,但接口成员必须全都具有公共可访问性。
不能向成员或接口自身附加安全性权限。
接口可以定义类构造函数,但不能定义实例构造函数。
每种语言都必须为需要成员的接口映射一个实现提供规则,
因为不只一个接口可以用相同的签名声明成员,且这些成员可以有单独的实现。
接口可以由类和结构来实现。为了指示类或结构实现了某接口,
在该类或结构的基类列表中应该包含该接口的标识符。
如果一个类或结构实现某接口,则它还隐式实现该接口的所有基接口。
即使在类或结构的基类列表中没有显式列出所有基接口,也是这样。
构造函数
内联函数(因为没有函数地址,在编译时插入,是个静态行为)
静态成员函数(因为: 静态成员函数类似于全局函数,不过是属于相应类的, 在相应类的作用域下,没有this指针)
答::虚函数的概念:
虚函数是动态联编的基础,它是引入派生概念之后用来表现基类和派生类成员函数之间的一种关系的。
虚函数在基类中定义,它也是一种成员函数,而且是非静态成员函数。
若一个实例方法的声明中含有virtual修饰符,则称该方法为虚拟方法;一个虚拟方法的实现可以由派生类取代。
取代所继承的虚拟方法的实现的过程称为重写(覆盖)该方法;在一个虚拟方法调用中,
该调用所涉及的那个实例的运行时类型确定了要被调用的究竟是该方法的哪一个实现。
虚函数的限制:
1).虚函数仅适用于有继承关系的类对象, 所以只有类的成员函数才能说明 为虚函数.
2).静态成员函数不能是虚函数.
3).内联函数不能是虚函数.
4)构造函数不能是虚函数.
5).析构函数可以是虚函数.
接口可以有静态成员、嵌套类型、抽象、虚拟成员、属性和事件。
实现接口的任何类都必须提供接口中所声明的抽象成员的定义。
接口可以要求任何实现类必须实现一个或多个其他接口。
对接口有以下限制:
接口可以用任何可访问性来声明,但接口成员必须全都具有公共可访问性。
不能向成员或接口自身附加安全性权限。
接口可以定义类构造函数,但不能定义实例构造函数。
每种语言都必须为需要成员的接口映射一个实现提供规则,
因为不只一个接口可以用相同的签名声明成员,且这些成员可以有单独的实现。
接口可以由类和结构来实现。为了指示类或结构实现了某接口,
在该类或结构的基类列表中应该包含该接口的标识符。
如果一个类或结构实现某接口,则它还隐式实现该接口的所有基接口。
即使在类或结构的基类列表中没有显式列出所有基接口,也是这样。
0 0
- virtual、inline、interface、override、public系列修饰符之间函数关系
- C#之修饰符-----virtual和override
- C#中virtual,abstract,override修饰符
- virtual,override,new ,extern,abstract修饰符
- C#中修饰符用法“virtual(虚拟函数)、override(函数复写)、static(静态函数)、abstract(抽象函数)、sealed(密封函数)”
- php 静态绑定中的static::与修饰符private,public,protected之间的关系
- 黑马程序员 virtual abstract interface 之间的关系
- virtual, sealed, override, abstract等修饰符作用
- 读书札记:static,virtual,override,abstract四个修饰符区别
- C#修饰符stattic、virtual、abstract、override、sealed、extern
- inline修饰函数
- C#关键字abstract virtual interface new override
- 修饰类成员函数的几个关键字:inline, const, explicit, static, virtual
- virtual函数可以inline吗?
- 编程经验:static,virtual,override,abstract四个修饰符区别--Demo
- public 修饰符
- C# new virtual override 之间的区别
- protected、public和private,abstract、virtual和override
- 搜索题集
- 把书读薄之《面向对象葵花宝典》阅读笔记-面向对象技巧
- [Leetcode]Repeated DNA Sequences
- android.content.res.Resources$NotFoundException: String resource ID #0x1
- HTTP系列
- virtual、inline、interface、override、public系列修饰符之间函数关系
- Redis与Memcached的区别
- 第一周 项目3 时间类 加 n
- java中的synchronized
- [NFC]SNEP协议介绍
- poj 3714 最近点对
- HDU 1226 胜利大逃亡(续)
- 黑马程序员---OC--protocol
- 《大话设计模式》 国外资料