C#中类、类实例的创建于C++的区别

C#中的类:

C#提供了6种用户定义类型,其中最重要额就是类(class),类是一个能存储数据并执行代码的数据结构,它包含数据成员函数成员。一个C#类可以由任意数目的数据成员和函数成员,成员可以是9种可能的成员类型的任意组合。

数据成员(存储数据):字段、常量(const)
函数成员(执行代码):方法(相当于C++中的成员函数)、属性、构造函数、析构函数、运算符、索引器、事件

注意:
(1)与C++不同,C#在类型的外部不能声明全局变量,所有的字段都属于类的内部,必须在类的内部声明
(2)与C++不同,C#中没有全局函数,C#中的函数只能声明在类的内部

C#中类实例的创建与C++不同:

在C#中类是引用类型,这意味着它们要为数据引用(栈)实际数据(堆)都申请内存,数据的引用保存在一个类类型的变量中,所以要创建类的实例,需要从声明一个类类型的变量开始,如果变量没有被初始化,它的值是未定义的。

因为声明类类型的变量所分配的内存是用来保存引用的,而不是用来保存类对象实际数据的,要为实际数据分配内存,需要使用new运算符,所以如图所示,如果只使用Dealer theDealer; 相当于只是在栈上定义了一个引用,而他目前并没有被赋初值,也可以说它没有保存任何实际数据,所以它的值是未定义的,不能使用它。这点与C++不同,在C++中如果像Dealer theDealer;这样定义了一个类对象,相当于在栈上申请了空间来保存这个类的一个实例,它的值是定义的,可以直接来使用它,而C#中不可以只在栈上去保存一个类的实例,C#中如果要使用类的实例,就必须使用new在堆中保存类的实例

如图所示,在堆上保存了实例的数据,并且将这个实际数据赋值给栈上的引用后,才算完整创建了C#类的一个实例,这时,就可以使用theDealer了。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值