C++虚函数和C#虚函数的区别?
一、C++虚函数和C#虚函数的区别
C++中
名列前茅次引入虚拟函数的基类时,必须在类声明中指定virtual关键字。如果虚函数的定义放在类的外面,则不能再次指定关键字virtual。假设有下面的类层次:
class A
{
public:
virtual void foo() { cout << “A::foo() is called” << endl;}//定义一个虚函数
};
class B: public A
{
public:
//备注:只要在基类中已声明为virtual,这里即使不使用virtual关键字,默认也是虚函数
//同样,如果还有从B派生的子类,对应的成员函数也是虚函数
virtual void foo() { cout << “B::foo() is called” << endl;}
};
//那么,在使用的时候,我们可以:
A * a = new B();
a->foo();// 在这里,a虽然是指向A的指针,但是被调用的函数(foo)却是B的!
C#中
若一个实例方法声明前带有virtual关键字,那么这个方法就是虚函数。
虚方法前不允许有static,abstract,或override修饰符
虚方法不能是私有的,因此不能使用private修饰符
class A
{
public virtual void Sum() //虚函数
{
Console.WriteLine(“I am AClass,I am virtual sum().”);
}
}
class B : A
{
public override void Sum() //重新实现了虚函数(重写)
{
Console.WriteLine(“I am BClass,I am override sum().”);
}
}
class Program
{
static void Main(string[] args)
{
A a = new B(); //定义一个a这个A类的对象.这个A就是a的申明类,实例化a对象,B是a的实例类
a.Sum();
Console.Read();
}
}
延伸阅读:
二、C++
是一种计算机高级程序设计语言,由C语言扩展升级而产生,较早于1979年由本贾尼·斯特劳斯特卢普在AT&T贝尔工作室研发。C++既可以进行C语言的过程化程序设计,又可以进行以抽象数据类型为特点的基于对象的程序设计,还可以进行以继承和多态为特点的面向对象的程序设计。C++擅长面向对象程序设计的同时,还可以进行基于过程的程序设计。 C++几乎可以创建任何类型的程序:游戏、设备驱动程序、HPC、云、桌面、嵌入式和移动应用等。 甚至用于其他编程语言的库和编译器也使用C++编写。C++拥有计算机运行的实用性特征,同时还致力于提高大规模程序的编程质量与程序设计语言的问题描述能力。

猜你喜欢LIKE
相关推荐HOT
更多>>
编译器与操作系统本质的区别?
一、编译器与操作系统本质的区别译程序是一支将抽象度较高的编程语言程序(也称源程序)转化成抽象度较低的编程语言程序(也称目标程序)的程序...详情>>
2023-10-13 23:05:06
C#中,事件是成员不是类型中,成员和类型有什么区别?
一、C#中,事件是成员不是类型中,成员和类型的区别编程语言的基本部分包括类型、常量、变量、运算符、语句。类型指的是数据类型,C#中类型有值...详情>>
2023-10-13 22:21:35
云计算和大数据有什么区别?
一、云计算和大数据的区别云计算和大数据都是当前IT领域热门的技术,它们有一些相似之处,比如都与大规模的计算和存储有关,但是也有一些不同之...详情>>
2023-10-13 19:34:32
多模态(multi-modal)和多视图(multi-view)有什么区别?
一、多模态(multi-modal)和多视图(multi-view)的区别多模态和多视图是两个不同的概念,涉及到不同领域的研究。多模态(multi-modal)指的是...详情>>
2023-10-13 18:34:04热门推荐
大数据分析用什么软件?
沸编译器与操作系统本质的区别?
热Rust使用crate名和crate关键字有什么区别?
热C#中,事件是成员不是类型中,成员和类型有什么区别?
新安卓开发的开发工具Eclpise和AndroidStudio有什么区别?
C++虚函数和C#虚函数的区别?
大数据与数据库有什么区别?
Kaggle的比赛和平时的数据分析有什么区别?
云计算和大数据有什么区别?
数据中台和业务中台有什么区别?
多模态(multi-modal)和多视图(multi-view)有什么区别?
随机优化、鲁棒优化和分布鲁棒优化有什么联系和区别?
对于QFile,delete,deletelater(),close()有什么区别?
cmnet和cmtds的区别?
技术干货






