深度摸索C++对象模子(1)[VC/C++编程]
本文“深度摸索C++对象模子(1)[VC/C++编程]”是由七道奇为您精心收集,来源于网络转载,文章版权归文章作者所有,本站不对其观点以及内容做任何评价,请读者自行判断,以下是其具体内容:
第一章:关于对象(Object Lessons)
读完这一章使我想到了一个好久从前看到的一个笑话,编写一个HELLO WORLD的程序,随着水暖和职务的不一样,程序代码也随着改变.当初看时完好当作笑话来看,目前看来写此笑话的人水平不普通.假如要使你的代码可以最大限度的适应差别的运行环境,和最大限度的复用,则在计划和编写的历程中需求考虑的问题很多,因此代码已变的不在具有C语言的简便,高效.而牺牲了这些上风换来的是更好的封装.当然假如你只是要打印Hello World则没必要这样做了.
以C++的思维方法办理问题,关于对C语言已经很熟习的人来说会很不能适应.需求一段时间来适应,不然会将代码写的似是而非.并且不能邯郸学步,必须从思惟上完好的C++(OO),假如只是依葫芦画瓢,那后果极大概是用C++的语法编写C式的程序.本人曾经犯的典型的初级的错误之一,就是无意识的一个类无限制的扩大,完好没有考虑到类的多层构造(基类-派生类),需求属性或办法便在类中增添,固然也用到了多态、重载等一些OO的计划方法,但最后这个类宏大非常,除了在当前系统中任劳任怨的工作外,一点复用的大概都没有,假如另一个系统还需求一个近似的东西,那只能重新计划实现一个新的类.并且最致命的是在保护更新时带来得麻烦,需求不断全部编译不说,并且代码在用了大量注释后,在过一段时间读起来也是一件重脑力劳动.及失去了C的简便清楚和高效,也不完好具有C++的面向对象的特点.这根本不能叫C++程序.(我想有时间重写一下从前代码也会有很多收获,温故而知新吗)C和C++在编程思惟上是彼此冲突的.这也就是说假如你想学C++,完好可以不学C,只需求一本好书和一个不太笨的大脑再加上勤奋便可以了,假如你已有C的经验在一定的情形下反而会捣乱.
本章是对对象模子的一个大概浏览.既然我们挑选了C++而不是C作为开辟工具,那我们的编程思惟也应当转为C++的,而不能再持续C的Procedural方法.我们必须学会C++的考虑方法.采取抽象数据范例或用一个多层的class体系对数据以及数据处理函数举行封装,只有摆脱C程序的利用全局数据的惯性,才能充分施展出C++对象模子的强盛威力.
在C++中有两种数据成员static和nonstatic,以及三种成员函数static、nonstatic和virtual.C++对象模子对内存空间和存取时间做了优化,nonstatic的数据成员被置于类对象之内,而static数据成员被置于类对象之外.static和nonstatic成员函数被放在类对象之外.而virtual函数是由类对象的一个指向vtbl(虚函数表)的指针vptr来举行支持.而vptr的设定和重置由类的构造函数、析构函数以及copy assignment运算符自动完成.
我们计划的每一个类几近都要有一个或多个构造函数、析构函数和一个Assignment运算符.他们的作用是构造函数产生一个新的对象并肯定它被初始化.析构函数销毁一个对象并肯定它已经被得当的清理(避免呈现内存泄露的问题),Assignment运算符给对象一个新值.
这是第一章的第一部份,由于雷神近来几天在做情势小组的主页,时间周转不开了.本想写完好个一章再发,考虑一下还是先发一部份吧.缘由有2.1、第一章的后半部大概又要拖上10天半个月的.2、笔记录在难写,我不肯意将笔记做成将书上的重点再抄一边,而是喜好尽大概将自己的理解描写出来,谁知第一章便如此的难以消化,已经反复读了3遍,还是有些夹生.所以本着对大家和自己负责的态度,雷神预备再看它3遍在说.忽然发现自己的C++还差的很远,好可怕呀.
以上是“深度摸索C++对象模子(1)[VC/C++编程]”的内容,如果你对以上该文章内容感兴趣,你可以看看七道奇为您推荐以下文章:
本文地址: | 与您的QQ/BBS好友分享! |