我知道这样的提问太笼统,可是我现在面对的就是这样的问题。看着一个实验室的师哥师姐们解决问题,编程都老牛了。当然不可能什么问题都让他们解决,很想自己也能拥有这种能力,着急啊!!

解决方案 »

  1.   

    初步来说,“对象”主要是功能模块管理和数据管理的一个集合体;除此之外,在编程上,算法、业务逻辑流程与C并无二致(欢迎各位大侠拍砖)!!!!!!想一下:传统的C编程,为了实现一个功能,需要很多函数及全局变量。如今的工程,动辄几十万的代码量,如果全部这样来写,恐怕到后面自己都要陷入这种扁平管理的汪洋大海中而无法专心于软件的核心逻辑……的开发——单就一点:函数及变量的命名就会让你头痛!!有时候你写好了一个功能函数,到后面要用的时候,可能都要在你上百个函数中找好一阵才找得出来。从这点上来说,对象是什么呢?对象就是让你把这几百个函数、上千个变量分门别类的放在几个“容器”中去管理(你可以把这个容器看作一个结构)。为这个容器设计好少量的几个接口方法,那么以后这一类的功能实现就可以通过调用这些方法来实现了。这种导致的编程技术从以前C的扁平式转化为层次结构,这在工程的维护方面会带来极大的方便。当然,对象不是一两句话就阐述得清楚的。不过对于从传统的C转换到C++的程序员来说,这样理解可以让你很快的入门。入门之后,你就可以去研究和理解更高层次的继承、多态……特性。
        以上纯属蔽人片面之言,权当作一块破砖,希能引出美玉:)。
      

  2.   

    “看了这么长时间的VC,可是面向对象编程的思想,还是没有,还是想着C语言的那种按部就班的编程”
    没理解这个“看”字是什么意思,要写sdk程序,你会发现还是结构化的c函数风格好。“面向”对象?没必要吧,撑死了写基于对象的无继承层的代码
    “等你编写一个类出来你就发现面向对象对大项目是何等的重要”这句话根本逻辑不通,写类也不等于面向对象,面不面向对象对于项目的大小也没什么关系。归根结底,程序怎么样还是看程序员水平,若水平不行,拿出什么理念也没用。
      

  3.   

    你去学MFC,把CString搞明白用熟,然后和char   TCHAR   WCHAR操作方法比较一下,你应该会明白很多东西然后再把C++好好看看,你应该会明白的
      

  4.   

    再说一句,面向对象是一种思想,Windows内核和驱动好多都是用C语言写的,但里面有面向对象的思想
      

  5.   

    多用框架就会习惯了例如:MFC,ATL,WTL,ICE,ACE,Spring,jQuery,prototype等
      

  6.   

    同感。从初中开始接触basic,后来是pascal,c,c++看来很久都不习惯。现在用MFC,对着别人写的程序修修补补,也是没有面向对象的概念,类里还是喜欢把变量定义为PUBLIC,在外面直接用,而不是用方法来访问。一个公用的类,在多个工程里用,直接把代码改了,而不是继承它...
    好多习惯都改不过来。
      

  7.   

    同感。从初中开始接触basic,后来是pascal,c,c++看来很久都不习惯。现在用MFC,对着别人写的程序修修补补,也是没有面向对象的概念,类里还是喜欢把变量定义为PUBLIC,在外面直接用,而不是用方法来访问。一个公用的类,在多个工程里用,直接把代码改了,而不是继承它...
    好多习惯都改不过来。
      

  8.   

    其实无所谓的,C++就是封装了的C,
    我这几天挺有感触的,因为正把自己6年前的一个MFC写的项目拿出来维护,我最近6年都用C做图象算法。
    拿一个10万行多源程序的C程序,和当年一个同样10万行源程序的C++程序比,反而觉得C++的难懂,C的东西清楚明了,当年用MFC完全是为了界面和微软的那一套数据库接口,光对话框就几十个。
    还有一个感触就是MFC的东西反正是不求效率的,界面之类的东西多,改起来肆无忌惮,图象算法之类C程序改起来就小心多了。
    我觉得做VC的C++这么来吧,先用VC自动产生一框架,对话框程序什么的都用它的办法自动生成,然后顺着它的思路风格走就行了,里面掺些C风格的不是坏事,比如用char* 而不用CString, 效率还高,我在一些性能瓶颈的地方还特意不用所谓面向对象的那套。