介绍C 的类与C
创始人
2024-06-21 01:41:24
0

许多编程人员学习C++总结经验为,有的觉得C++语言是一门独立的语言,并不是在C语言的基础上,可以直接学习C++不必先从C下手。希望大家能够在此学习到自己想要的东西。

 "C"语言系列是面向对象设计发展的***例子。C++为开发者提供了优秀的面向对象编程工具,程序员可以显式地创建构造函数,拷贝构造函数,重载操作符,使用模板等等。

C++的类这样复杂语言的主要问题是程序员要花上好几个月来掌握面向对象设计本质。新程序员必须学会掌握模板,函数重载,当然还要会创建和使用功能良好的类。   
微软公司给C#(读为C-Sharp)赋予C++某些面向对象的本质。#t#

比如模板,但改变了类的创建方法。本文,我将对比C++的类,并着重说明微软在C#中类创建和使用方面的改变。 本文对象是熟练的C++程序员,通过一些细节来解释C#面向对象的本质。

如你所知,C#是部分基于C++,部分基于Java语法的语言。C#中还有一些细节上的改变,使得它可以用于现代设计。当你开始用C#建类时就会立即看到这点。让我们通过一个简单的例子开始了解在C++和C#中是如何建类并进行实例化的。

  1. #include   
  2. class MyClass   
  3. {   
  4.  public: void doSomething()   
  5.  { std::cout << "This is some text";   
  6.  }   
  7. };      
  8. void main()   
  9. { MyClass mc;   
  10.  mc.doSomething();   
  11. }   
  12.  
  13. C# 版本:   
  14. using System;   
  15.  
  16. class MyClass   
  17. {   
  18. public void doSomething()   
  19. {   
  20. Console.WriteLine("This is some text");   
  21. }   
  22. }      
  23. class EntryPoint   
  24. {  public static void Main()   
  25. { MyClass mc = new MyClass();   
  26. mc.doSomething();   
  27. }   
  28. }     

首先,C++用#include包含语句来指明包含文件iostream.h的物理路径。C#则告诉编译器程序将在System命名空间下操作,所有的命名空间和类都属于System命名空间。C#通过命名空间的名字来决定程序的作用范围(本例中只有System一个命名空间),而不用指明物理路径的包含文件方法。

 其次,C#的主程序用Main(注意M是大写)。 第三,C++的类声明结束后要在***的大括号后面用分号结尾。C#则可用可不用,往往都是省略。 第四,你能看到在C#中必须显式地声明方法和成员的作用域。若不加声明,缺省为私有(只有类成员可以访问),这点与C++一样。C#中有5种作用域:
 公有(public):其他类成员也可以访问
 私有(private):只有类成员才能访问
 保护(protected):类成员和继承类成员可以访问
 内部(internal):只有汇编里的成员才能访问(C#的汇编是代码和资源数据的结合,以asmx作文件后缀)

相关内容

热门资讯

如何允许远程连接到MySQL数... [[277004]]【51CTO.com快译】默认情况下,MySQL服务器仅侦听来自localhos...
如何利用交换机和端口设置来管理... 在网络管理中,总是有些人让管理员头疼。下面我们就将介绍一下一个网管员利用交换机以及端口设置等来进行D...
施耐德电气数据中心整体解决方案... 近日,全球能效管理专家施耐德电气正式启动大型体验活动“能效中国行——2012卡车巡展”,作为该活动的...
Windows恶意软件20年“... 在Windows的早期年代,病毒游走于系统之间,偶尔删除文件(但被删除的文件几乎都是可恢复的),并弹...
20个非常棒的扁平设计免费资源 Apple设备的平面图标PSD免费平板UI 平板UI套件24平图标Freen平板UI套件PSD径向平...
德国电信门户网站可实时显示全球... 德国电信周三推出一个门户网站,直观地实时提供其安装在全球各地的传感器网络检测到的网络攻击状况。该网站...
着眼MAC地址,解救无法享受D... 在安装了DHCP服务器的局域网环境中,每一台工作站在上网之前,都要先从DHCP服务器那里享受到地址动...
为啥国人偏爱 Mybatis,... 关于 SQL 和 ORM 的争论,永远都不会终止,我也一直在思考这个问题。昨天又跟群里的小伙伴进行...