none
VisualStudio2008中,C#和C++,有什么区别? RRS feed

  • 问题

  • VisualStudio2008中,C#和C++,有什么区别?(除指针、动态分配内存外)

    我原来学过C,所以对指针是了解的;动态内存有一点概念。貌似VC++2008也可以调用命名空间,那么如果我要在VC++2008上写各种各样的程序,我还要了解些什么?

    我想写的不仅仅只是GDI或WPF这些拖控件就可以解决问题的东西,我还要写那些较抽象的类或控件或应用程序的话,我该如何做?

    目前在C#已经可以写类、继承、重写、多态。

    谢谢

    2010年5月25日 23:30

答案

  • C#是.NET Framework下的托管语言。整个运行过程是由.NET运行时环境托管的。而C++直接运行在操作系统上。C++/CLI也是运行在.NET Framework的托管语言,具有C++的语言特性,并且具有托管和使用.NET运行时环境的功能。

    你说的功能所有流行的面向对象编程语言都可以实现。对于该怎么做,这个问题实在是很难回答,有些内容可能我到现在也不知道该怎么做,这可能不是你要问的问题。

    我想你的问题应该是学习C#还是C++。我的建议是最好从C++学,因为C++不依赖于任何框架。更加接近底层。建议买一本C++的书,从头到尾看一下。

     


    麻烦把正确答案设为解答。
    2010年5月26日 1:46
    版主
  • 在C++的设计者和实现者Bjarne的主页上有一份资料,大概可以让你了解到C++能做什么以及现在广泛应用的软件中都有哪些是用C++开发的。http://www2.research.att.com/~bs/applications.html ,该页面中还给出了中文翻译的页面链接。

    如SplendourG所说的,你所想要编写的那些较抽象的类或控件或应用程序,现在流行的面向对象语言都可以实现。然而,你可能还需要很多其他方面的知识,如数学、物理等。

    如果你的学习时间还很充裕的话,建议你认真学习C++。

    此外,C#编译器也是用C++编写的,世界上最赚钱的软件Office也是用C++写的,MYSQL服务器大约25万行C++代码,游戏引擎等等。

    Bjarne写过几本书,其中就有两本是关于C++的,建议你认真看几遍。

    2010年5月26日 18:00
  • Hi OpenNovo,

    补充一点,C#也可以用来构建抽象控件,像WinForm里的控件都是用C#写的。你可以参考下面的代码来编写WinForm自定义控件。
    http://msdn.microsoft.com/zh-cn/library/6hws6h2t.aspx

    只是的话,GDI+要掌握一点,还有一些控件布局的基本知识。如果你想让控件能被其他人拖来拖去饿设计, 还需要做一个自定义设计器加到控件上。

    总之,语言不是关键,看你想选择什么养的平台。MFC, WinForm, WPF 各有其优点。选择的时候要根据具体应用和现有的可以重用的代码类型来决定。

    Aland Li


    Please mark the replies as answers if they help and unmark if they don't. This can be beneficial to other community members reading the thread.
    • 已标记为答案 OpenNovo 2010年5月28日 4:33
    2010年5月27日 9:49
    版主
  • 您好 OpenNovo,

    这样的话,还是有很多东西要学的。主要看您想用C++做什么了。如果您只是想用C++做一些算法之类的,那大体上把指针还有C++的类,模板,已经标准模板库学习一下就可以了。学习的时候可以把C#的类和C++的类对比一下,把泛型和模板对比一下。最好还是找本C++的书看看,一些和C#类似的概念可以扫荡的快点。这样应该差不多了。

    如果您想开发用户界面,那还是得找本MFC相关的数据仔细研究一下。如果想开发windows底层的东西,相关API也得研究一下。总之,看您需要做什么应用了。

    Aland Li


    Please mark the replies as answers if they help and unmark if they don't. This can be beneficial to other community members reading the thread.
    • 已标记为答案 OpenNovo 2010年5月29日 7:28
    2010年5月28日 7:48
    版主

全部回复

  • C#是.NET Framework下的托管语言。整个运行过程是由.NET运行时环境托管的。而C++直接运行在操作系统上。C++/CLI也是运行在.NET Framework的托管语言,具有C++的语言特性,并且具有托管和使用.NET运行时环境的功能。

    你说的功能所有流行的面向对象编程语言都可以实现。对于该怎么做,这个问题实在是很难回答,有些内容可能我到现在也不知道该怎么做,这可能不是你要问的问题。

    我想你的问题应该是学习C#还是C++。我的建议是最好从C++学,因为C++不依赖于任何框架。更加接近底层。建议买一本C++的书,从头到尾看一下。

     


    麻烦把正确答案设为解答。
    2010年5月26日 1:46
    版主
  • 在C++的设计者和实现者Bjarne的主页上有一份资料,大概可以让你了解到C++能做什么以及现在广泛应用的软件中都有哪些是用C++开发的。http://www2.research.att.com/~bs/applications.html ,该页面中还给出了中文翻译的页面链接。

    如SplendourG所说的,你所想要编写的那些较抽象的类或控件或应用程序,现在流行的面向对象语言都可以实现。然而,你可能还需要很多其他方面的知识,如数学、物理等。

    如果你的学习时间还很充裕的话,建议你认真学习C++。

    此外,C#编译器也是用C++编写的,世界上最赚钱的软件Office也是用C++写的,MYSQL服务器大约25万行C++代码,游戏引擎等等。

    Bjarne写过几本书,其中就有两本是关于C++的,建议你认真看几遍。

    2010年5月26日 18:00
  • Hi OpenNovo,

    补充一点,C#也可以用来构建抽象控件,像WinForm里的控件都是用C#写的。你可以参考下面的代码来编写WinForm自定义控件。
    http://msdn.microsoft.com/zh-cn/library/6hws6h2t.aspx

    只是的话,GDI+要掌握一点,还有一些控件布局的基本知识。如果你想让控件能被其他人拖来拖去饿设计, 还需要做一个自定义设计器加到控件上。

    总之,语言不是关键,看你想选择什么养的平台。MFC, WinForm, WPF 各有其优点。选择的时候要根据具体应用和现有的可以重用的代码类型来决定。

    Aland Li


    Please mark the replies as answers if they help and unmark if they don't. This can be beneficial to other community members reading the thread.
    • 已标记为答案 OpenNovo 2010年5月28日 4:33
    2010年5月27日 9:49
    版主
  • 其实我是问:我已经学了C#,并对C++中的指针、动态内存了解。那么剩下来,我还要学哪些C++的特性,才能让我成为一个合格的C++程序员?谢谢。
    2010年5月28日 4:35
  • 您好 OpenNovo,

    这样的话,还是有很多东西要学的。主要看您想用C++做什么了。如果您只是想用C++做一些算法之类的,那大体上把指针还有C++的类,模板,已经标准模板库学习一下就可以了。学习的时候可以把C#的类和C++的类对比一下,把泛型和模板对比一下。最好还是找本C++的书看看,一些和C#类似的概念可以扫荡的快点。这样应该差不多了。

    如果您想开发用户界面,那还是得找本MFC相关的数据仔细研究一下。如果想开发windows底层的东西,相关API也得研究一下。总之,看您需要做什么应用了。

    Aland Li


    Please mark the replies as answers if they help and unmark if they don't. This can be beneficial to other community members reading the thread.
    • 已标记为答案 OpenNovo 2010年5月29日 7:28
    2010年5月28日 7:48
    版主