CUJ C++ Experts Forum: conversation (September 2001)

 Conversations: Back to Base-icsCUJ C++ Experts Forum: conversation (September 2001)和往常一样,我又在为一个按说应该很简单的设计问题大伤脑筋。可能是劳工节假期刚过还没来得及收心吧,我感觉自己有点迷迷糊糊的。Wend...

2001-08-18 21:32:00

阅读数:1324

评论数:1

Effective C++ 2e Item50

条款50: 提高对C++的认识C++中有很多 "东西":C,重载,面向对象,模板,例外,名字空间。这么多东西,有时让人感到不知所措。怎么弄懂所有这些东西呢?C++之所以发展到现在这个样子,在于它有自己的设计目标。理解了这些设计目标,就不难弄懂所有这些东西了。C++最首要的目标在...

2001-08-10 20:23:00

阅读数:1075

评论数:0

Effective C++ 2e Item49

条款49: 熟悉标准库C++标准库很大。非常大。难以置信的大。怎么个大法?这么说吧:在C++标准中,关于标准库的规格说明占了密密麻麻300多页,这还不包括标准C库,后者只是 "作为参考"(老实说,原文就是用的这个词)包含在C++库中。当然,并非总是越大越好,但在现在的情况下,确...

2001-08-09 22:32:00

阅读数:1061

评论数:0

Effective C++ 2e Item48

条款48: 重视编译器警告很多程序员日常总是不理睬编译器警告。毕竟,如果问题很严重,就会是个错误,不是吗?这种想法在其它语言中相对来说没什么害处,但在C++中,可以肯定的一点是,编译器的设计者肯定比你更清楚到底发生了什么。例如,大家可能都犯过这个错误:class B {public:  virtu...

2001-08-08 20:46:00

阅读数:802

评论数:0

Effective C++ 2e Item47

条款47: 确保非局部静态对象在使用前被初始化大家都是成年人了,所以用不着我来告诉你们:使用未被初始化的对象无异于蛮干。事实上,关于这个问题的整个想法会让你觉得可笑;构造函数可以确保对象在创建时被初始化,难道不是这样吗?唔,是,也不是。在某个特定的被编译单元(即,源文件)中,可能一切都不成问题;但...

2001-08-08 20:45:00

阅读数:864

评论数:0

Effective C++ 2e Item46

条款46: 宁可编译和链接时出错,也不要运行时出错除了极少数情况下会使C++抛出异常(例如,内存耗尽 ---- 见条款7)外,运行时错误的概念和C++没什么关系,就象在C中一样。没有下溢,上溢,除零检查;没有数组越界检查,等等。一旦程序通过了编译和链接,你就得靠自己了 ---- 一切后果自负。这很...

2001-08-07 21:00:00

阅读数:841

评论数:0

Effective C++ 2e Item45

杂项进行高效的C++程序设计有很多准则,其中有一些很难归类。本章就是专门为这些准则而安排的。不要因此而小看了它们的重要性。要想写出高效的软件,就必须知道:编译器在背后为你(给你?)做了些什么,怎样保证非局部的静态对象在被使用前已经被初始化,能从标准库得到些什么,从何处着手深入理解语言底层的设计思想...

2001-08-06 19:17:00

阅读数:853

评论数:0

Effective C++ 2e Item44

条款44: 说你想说的;理解你所说的在本章关于 "继承和面向对象设计" 的简介中,我曾强调,理解不同的面向对象构件在C++中的含义十分重要。这和仅仅知道C++语言的规则有很大的不同。例如,C++规则说,如果类D从类B公有继承,从D的指针到B的指针就有一个标准转换;B的公有成员函...

2001-08-05 19:04:00

阅读数:836

评论数:0

Effective C++ 2e Item43

条款43: 明智地使用多继承要看是谁来说,多继承(MI)要么被认为是神来之笔,要么被当成是魔鬼的造物。支持者宣扬说,它是对真实世界问题进行自然模型化所必需的;而批评者争论说,它太慢,难以实现,功能却不比单继承强大。更让人为难的是,面向对象编程语言领域在这个问题上至今仍存在分歧:C++,Eiffel...

2001-08-05 19:01:00

阅读数:688

评论数:0

Effective C++ 2e Item42

条款42: 明智地使用私有继承条款35说明,C++将公有继承视为 "是一个" 的关系。它是通过这个例子来证实的:假如某个类层次结构中,Student类从Person类公有继承,为了使某个函数成功调用,编译器可以在必要时隐式地将Student转换为Person。这个例子很值得再看...

2001-08-02 19:18:00

阅读数:660

评论数:0

Effective C++ 2e Item41

条款41: 区分继承和模板考虑下面两个设计问题:· 作为一位立志献身计算机科学的学生,你想设计一个类来表示对象的堆栈。这将需要多个不同的类,因为每个堆栈中的元素必须是同类的,即,它里面包含的必须只是同种类型的对象。例如,会有一个类来表示int的堆栈,第二个类来表示string的堆栈,第三个类来表示...

2001-08-01 20:11:00

阅读数:685

评论数:0

Effective C++ 2e Item40

 条款40: 通过分层来体现 "有一个" 或 "用...来实现"使某个类的对象成为另一个类的数据成员,从而实现将一个类构筑在另一个类之上,这一过程称为 "分层"(Layering)。例如:class Address { ... };   ...

2001-08-01 20:09:00

阅读数:642

评论数:0

提示
确定要删除当前文章?
取消 删除
关闭
关闭