- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
C 的类与C#的类
C++的类与C#的类
一、简介
面向对象(OO)编程在应用设计中已经发展二十来年了。程序不再是一系列函数的堆彻
(象一些范例那样的程序),而是对象的集合,每个对象都有其独特的属性和方法来与其它
对象打交道。
C语言系列是面向对象设计发展的最好例子。C++为开发者提供了优秀的面向对象编程
工具,程序员可以显式地创建构造函数,拷贝构造函数,重载操作符,使用模板等等。
象C++这样复杂语言的主要问题是程序员要花上好几个月来掌握面向对象设计本质。新
程序员必须学会掌握模板,函数重载,当然还要会创建和使用功能良好的类。
微软公司给C#(读为C-Sharp)赋予C++某些面向对象的本质,比如模板,但改变了类
的创建方法。本文,我将对比C++和C#的类,并着重说明微软在C#中类创建和使用方面的
改变。
本文对象是熟练的C++程序员,通过一些细节来解释C#面向对象的本质。
二、C#的类有了哪些改变?
如你所知,C#是部分基于C++,部分基于Java语法的语言。C#中还有一些细节上的改
变,使得它可以用于现代设计。当你开始用C#建类时就会立即看到这点。让我们通过一个
简单的例子开始了解在C++和C#中是如何建类并进行实例化的。
C++版本:
#include
classMyClass
{
public: voiddoSomething()
{ std::cout Thisis some text;
}
};
voidmain()
{ MyClassmc;
mc.doSomething();
}
C# 版本:
usingSystem;
classMyClass
{
publicvoid doSomething()
{
Console.WriteLine(This issome text);
}
}
classEntryPoint
{ public static void Main()
{ MyClassmc = newMyClass();
mc.doSomething();
}
}
上面的代码中有几个不同之处。
首先,C++用#include包含语句来指明包含文件iostream.h的物理路径。C#则告诉编
译器程序将在System命名空间下操作,所有的命名空间和类都属于System命名空间。C#
通过命名空间的名字来决定程序的作用范围(本例中只有System一个命名空间),而不用指
明物理路径的包含文件方法。
其次,C#的主程序用Main(注意M是大写)。
第三,C++的类声明结束后要在最后的大括号后面用分号结尾。C#则可用可不用,往往
都是省略。
第四,你能看到在C#中必须显式地声明方法和成员的作用域。若不加声明,缺省为私
有(只有类成员可以访问),这点与C++一样。C#中有5种作用域:公有(public):其他类
成员也可以访问私有(private):只有类成员才能访问保护(protected):类成员和继承类
成员可以访问内部(internal):只有汇编里的成员才能访问(C#的汇编是代码和资源数据
的结合,以asmx作文件后缀)
内部保护(protected internal):类成员和继承类成员可以访问最后,与Java一样,
C#的方法也可以声明为静态(static)的。静态变量的使用在C#和C++是一样的。在C#里,
可以这样创建并调用类的静态方法:
using System;
classMyClass
{ public staticvoid doSomething()
{Console.WriteLine(This is some
text);
}
};
原创力文档


文档评论(0)