c语言有虚函数的说法吗 c中虚函数的作用

C语言中什么函数不能声明为虚函数?

c语言里不管什么函数都不可以声明成虚函数的,只有c++里才可以

创新互联-专业网站定制、快速模板网站建设、高性价比上林网站开发、企业建站全套包干低至880元,成熟完善的模板库,直接使用。一站式上林网站制作公司更省心,省钱,快速模板网站建设找我们,业务覆盖上林地区。费用合理售后完善,十载实体公司更值得信赖。

什么函数不能声明为虚函数?

inline, static, constructor ,template 函数都不能 为虚函数,而析构函数可以。

为什么呢:

inline: 编译器替换; 而虚函数是为了解决运行期间绑定。

static:class 成员; 编译期间就给class了。

constructor: 构造函数表示要生成一个class的object;假设是virtual的,那就说不知道这个实例化derived还是based的class。但是类型实例化必须在编译期确定(否则编译器不知道到底是什么对象了)

template:模板实例是在 compile-time,virtual就意味着在run-time确定。这让编译器设计者为难了,这就是说虚函数表要指向各种版本的 template function 实例,代码设计者confuse,编译器设计者也觉得蛮烦。

C语言和C++语言的差别?

1、C是一门中级语言,C++是一个门高级语言。

2、C语言是面向过程的,而C++是面向对象的。

3、C语言仅支持内置的数据类型,C++支持内置和用户定义的数据类型。

4、C和C++中都有结构的概念,但是在C语言中结构只有成员变量,而没成员方法,而在C++中结构中,它可以有自己的成员变量和成员函数。但是在C语言中结构的成员是公共的,什么想访问它的都可以访问

5、特别是C++中的图形处理,它和语言的图形有很大的区别。C语言中的图形处理函数基本上是不能用在中C++中的。C语言标准中不包括图形处理。

6、C语言对程序的文件的组织是松散的,几乎是全要程序处理;而c++对文件的组织是以工程,各文件分类明确。

7、C++中的IDE很智能,和VB一样,有的功能可能比VB还强。

8、C++对可以自动生成你想要的程序结构使你可以省了很多时间。有很多可用的工具如加入MFC中的类的时候,加入变量的时候等等。

9、C++中的附加工具也有很多,可以进行系统的分析,可以查看API;可以查看控件。

10、C中没有虚函数,C++有虚函数。

11.C语言没有命名空间功能,C++增加了命名空间,避免全局命名冲突。

12.C语言源文件的后缀是C,C++源文件是cpp。

13.C语言中如果一个函数没有指定返回值类型,默认返回int类型;C++中如果一个函数没有返回值则必须指定为void


文章标题:c语言有虚函数的说法吗 c中虚函数的作用
分享地址:http://azwzsj.com/article/ddjesee.html