更多课程 选择中心

C/C++培训
达内IT学院

400-996-5531

C++关键字说明及比较

  • 发布:C++培训
  • 来源:网络
  • 时间:2018-06-28 18:14

1、 Sealed关键字

1) Sealed修饰类定义时:

表示该类永远不能被继承,因此称之为封闭类,当封闭类中存在虚函数时,Virtual关键字将不在生效。

例如:publicsealedclass C{} 那么C类不能被继承。

2) Sealed修饰方法或者属性时:

防止子类重写父类虚方法或者虚属性。

2、 类继承和接口继承的区别

1) 类继承

派生类继承基类所有属性和方法,而且一个派生类只能有一个基类,System.Object是所有类型的基类。

2) 接口继承

派生类之继承了接口的方法,而且接口本身并未实现,具体的实现实在派生类的实现的,而且派生类可以同时继承多个接口。

3) 组合继承

派生类可以同时继承类和接口,而且可以继承多个接口,当然类却只能继承一个。

3、 Abstract和Virtual的区别

1) Virtual 虚方法:可以重写可以不写

a) 在基类中定义了Virtual方法,但是在派生类中没有重写该方法,那么在派生类的实例调用中,该方法使用的是基类定义的方法。

b) 在基类中定义了Virtual方法,然后在派生类中使用override重写了该方法,那么在对派生类的实例调用中,该虚方法调用派生类重写的方法。

2) Abstract 抽象方法:必须重写

a) Abstract只能在抽象类中修饰方法,并且没有具体的实现,抽象方法的实现必须在派生类中使用override关键字来实现。

3) 理解:

Virtual想当与C++中的虚函数,所以子类继承后,可以实现,也可以不实现,但是Abstract方法,相当于C++中的纯虚函数,子类必须实现,否则不能实例化对象。

4、 Ref和out的区别

两者都是表示值类型按照引用类型来传递

1) Ref

在参数传递之前必须初始化

2) Out

在参数传递前不必初始化,且在传递时(被调用方法返回之前)必须显示赋值,否则编译错误。

5、 New的作用

1) 作为运算符,用于创建对象和调用构造函数

例如:

Class Person

{

……

}

Person aPerson = newPerson();

2) 作为运算符,用于向基类成员隐藏继承成员

例如:

Class A

{

Public static intI =123;

Public virtual void showinfo()

{

Console.WriteLine(“base class….”);

}

Public virtual void ShowNumber()

{

Console.WriteLine(i.Tostring());

}

}

Class B:A

{

New public staticint I = 456;

Public new virtual viod ShowInfo

{

Console.WriteLine(“Derived class……”);

}

Public override void showNum()

{

Console.WriteLine(i.Tostring());

}

}

3) 作为约束, 用与在泛型声明中约束可能用作类型参数的参数类型

4) 使用new实现多态

5) 要点:

a) New一个class时,new完成了两个方面的内容,一个调用newobj命令来未实例在托管堆中分配内存,而是调用构造函数来实现对象的初始化。

b) New一个struct时,new运算符用于调用其构造函数,完成实例的初始化。

c) New一个int时,new运算符用处于初始化为0

d) New运算符不能重载

e) New分配内存失败,引发OutMemoryException异常

预约申请免费试听课

填写下面表单即可预约申请免费试听!怕钱不够?可就业挣钱后再付学费! 怕学不会?助教全程陪读,随时解惑!担心就业?一地学习,可全国推荐就业!

上一篇:适合C/C++新手练手的项目
下一篇:C++开发5款辅助工具

超全的C语言标识符知识

C指针——指针类型转换

C指针——指针和结构类型的关系

C指针——数组和指针的关系

Copyright © 2023 Tedu.cn All Rights Reserved 京ICP备08000853号-56 京公网安备 11010802029508号 达内时代科技集团有限公司 版权所有

选择城市和中心
黑龙江省

吉林省

河北省

湖南省

贵州省

云南省

广西省

海南省