许多编程人员学习C++总结经验为,有的觉得C++语言是一门独立的语言,并不是在C语言的基础上,可以直接学习C++不必先从C下手。希望大家能够在此学习到自己想要的东西。
"C"语言系列是面向对象设计发展的***例子。C++为开发者提供了优秀的面向对象编程工具,程序员可以显式地创建构造函数,拷贝构造函数,重载操作符,使用模板等等。
C++的类这样复杂语言的主要问题是程序员要花上好几个月来掌握面向对象设计本质。新程序员必须学会掌握模板,函数重载,当然还要会创建和使用功能良好的类。
微软公司给C#(读为C-Sharp)赋予C++某些面向对象的本质。#t#
比如模板,但改变了类的创建方法。本文,我将对比C++的类,并着重说明微软在C#中类创建和使用方面的改变。 本文对象是熟练的C++程序员,通过一些细节来解释C#面向对象的本质。
如你所知,C#是部分基于C++,部分基于Java语法的语言。C#中还有一些细节上的改变,使得它可以用于现代设计。当你开始用C#建类时就会立即看到这点。让我们通过一个简单的例子开始了解在C++和C#中是如何建类并进行实例化的。
- #include
- class MyClass
- {
- public: void doSomething()
- { std::cout << "This is some text";
- }
- };
- void main()
- { MyClass mc;
- mc.doSomething();
- }
- C# 版本:
- using System;
- class MyClass
- {
- public void doSomething()
- {
- Console.WriteLine("This is some text");
- }
- }
- class EntryPoint
- { public static void Main()
- { MyClass mc = new MyClass();
- 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作文件后缀)