[C#&&C++]类CLASS

简介:
很早就有学习C++的冲动,但是由于一直以来坚持C#而没有真正进入过C++世界很多的文章包括微软的也只有C++转向C#的文章,而很少有人写过由C#进入C++的文章。由于我对游戏开发很有兴趣,在我看到的现状来看C++是游戏界的首选,我是说大型游戏而不是手机之类的。同时朋友会叫你写一个小程序,比如一个计算器,你总不能叫他装一下.NET框架再运行吧,所以多我来说学习C++还是很有必要的,不知道大哥大姐们是怎么个想法。在此我想记录一下C#中和C++的区别和联系等等,OK今天首先看看C#中和C++中的类及其继承等等。

【C++】在这里我们主要讲讲C++,而且会偏重VC++。首先让我们看看C++的文件组成,我们都知道C++中有头文件(.h),和实现的文件(.cpp),在头文件中声明一下变量,方法等等,而方法的实现就在cpp文件中实现。在实现文件中要包含当前头文件何必要的头文件(和C#中using引入的命名空间有点像),并且实现当前头文件中声明的方法等等。在C++中定义一个类格式如下(一般保存在头文件中):
 1      class    < 类名 >
 2      {
 3          private
 4               < 私有数据成员和私有成员函数的声明列表 > ;
 5          public
 6               < 公有数据成员和公有成员函数的声明列表 > ;
 7          protected
 8               < 保护数据成员和保护成员函数的声明列表 > ;
 9      };
10 

【C#】在C#中定义一个类就很简单了,在.NET中为了更能区分各个类的层次等等引入了命名空间,每一个类都属于特定的命名空间。定义一个类如下:
using 引入所要用到的命名空间

namespace 命名空间
{
  public/private/protected/internal [statics]  <类名>
  {
    成员:...
  }
}

【C++】C++也是面向对象的编程语言,当然也可以继承等等,它允许多重继承,一个类可以有几个基类。而继承的基类中的成员可见度是在继承中指定的,在MFC中所有类都直接或间接的继承自CObject类,这和C#中的所有类都继承自Object是一样的。格式如下:

class   <派生类名>  :  [<派生方式>]  <基类名>

{

         .  .  .       // 派生类新增加的成员声明列表

};


    <派生方式>:

    public[ 常用]:除了私有成员外不可访问外,保留所有基类成员的访问级别。也就是说在当前类中可以访问基类中的public和protected的成员,在当前类的子类中也可以访问祖父类的成员(这和C#中的继承一样);

    protected:基类所有的公有和保护成员在派生类中都成为保护成员(在当前类或子类中,基类的所有成员全为protected),只允许在派生类的成员函数和该派生类的派生类的成员函数中访问基类的非私有成员。 

    private[ 很少用]:基类所有的公有和保护成员在派生类中都成为私有成员,只允许在派生类的成员函数中访问基类的非私有成员。

【C#】在C#中继承就和C++中的public继承一样,但是C#只能够继承一个基类,但是可以继承多个接口。而决定继承或不让继承的类还可以通过构造函数或sealed来限定类型,使得当前类不能够被继承。
   
    友情提示(好的命名方式可以帮助代码的可读性):

        C++中类的命名以C开头(而C#没有此规定);

        g_:全局作用域;

        m_:成员变量;

        l_:局部作用域。

    在不断的学习中可以知道他们的区别,现在很多人都在用.NET的,也有很多人有意转向C++,本人也是刚开始学习C++把我所想到的所看到的记录下来,希望可以给大家同仁一点帮助,也能够巩固一下自己的学习!!!

本文转自网魂小兵博客园博客,原文链接:http://www.cnblogs.com/xdotnet/archive/2007/06/30/csharp_cpp_class.html,如需转载请自行联系原作者

相关文章
|
21天前
|
存储 编译器 C语言
【c++丨STL】string类的使用
本文介绍了C++中`string`类的基本概念及其主要接口。`string`类在C++标准库中扮演着重要角色,它提供了比C语言中字符串处理函数更丰富、安全和便捷的功能。文章详细讲解了`string`类的构造函数、赋值运算符、容量管理接口、元素访问及遍历方法、字符串修改操作、字符串运算接口、常量成员和非成员函数等内容。通过实例演示了如何使用这些接口进行字符串的创建、修改、查找和比较等操作,帮助读者更好地理解和掌握`string`类的应用。
31 2
|
27天前
|
存储 编译器 C++
【c++】类和对象(下)(取地址运算符重载、深究构造函数、类型转换、static修饰成员、友元、内部类、匿名对象)
本文介绍了C++中类和对象的高级特性,包括取地址运算符重载、构造函数的初始化列表、类型转换、static修饰成员、友元、内部类及匿名对象等内容。文章详细解释了每个概念的使用方法和注意事项,帮助读者深入了解C++面向对象编程的核心机制。
74 5
|
1月前
|
存储 编译器 C++
【c++】类和对象(中)(构造函数、析构函数、拷贝构造、赋值重载)
本文深入探讨了C++类的默认成员函数,包括构造函数、析构函数、拷贝构造函数和赋值重载。构造函数用于对象的初始化,析构函数用于对象销毁时的资源清理,拷贝构造函数用于对象的拷贝,赋值重载用于已存在对象的赋值。文章详细介绍了每个函数的特点、使用方法及注意事项,并提供了代码示例。这些默认成员函数确保了资源的正确管理和对象状态的维护。
76 4
|
1月前
|
存储 编译器 Linux
【c++】类和对象(上)(类的定义格式、访问限定符、类域、类的实例化、对象的内存大小、this指针)
本文介绍了C++中的类和对象,包括类的概念、定义格式、访问限定符、类域、对象的创建及内存大小、以及this指针。通过示例代码详细解释了类的定义、成员函数和成员变量的作用,以及如何使用访问限定符控制成员的访问权限。此外,还讨论了对象的内存分配规则和this指针的使用场景,帮助读者深入理解面向对象编程的核心概念。
82 4
|
2月前
|
存储 编译器 对象存储
【C++打怪之路Lv5】-- 类和对象(下)
【C++打怪之路Lv5】-- 类和对象(下)
31 4
|
2月前
|
编译器 C语言 C++
【C++打怪之路Lv4】-- 类和对象(中)
【C++打怪之路Lv4】-- 类和对象(中)
26 4
|
2月前
|
存储 安全 C++
【C++打怪之路Lv8】-- string类
【C++打怪之路Lv8】-- string类
26 1
|
2月前
|
存储 编译器 C++
【C++类和对象(下)】——我与C++的不解之缘(五)
【C++类和对象(下)】——我与C++的不解之缘(五)
|
2月前
|
存储 编译器 C语言
【C++打怪之路Lv3】-- 类和对象(上)
【C++打怪之路Lv3】-- 类和对象(上)
17 0
|
2月前
|
存储 编译器 C语言
深入计算机语言之C++:类与对象(上)
深入计算机语言之C++:类与对象(上)