扫二维码与项目经理沟通
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流
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,编译器设计者也觉得蛮烦。
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
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流