《c++ primer》读书笔记6

原创 2004年07月15日 14:12:00

笔记范围:2.3<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />

早在2.1里作者就留给我们一个问题:要成为c++的一等公民需要那些条件(练习2.2)?个人认为这个问题非常重要。它直接关系到我们对类的设计思想和努力的方向,显然我们的方向该是:尽可能的让我们设计的类成为语言的一等公民,换句话说,在类的设计中,对于运算符的支持要比一般的成员函数更重要,这样做的另一个考虑是为我们以后学习STL提供思维的延续,可见。如果我们只把c++当成oo的语言,是不会这样想的

对于初学者来说,想在本节完全学会很好类的代码实现,几乎是不现实的,在本节的内容里,我们的任务是理解设计思路、了解类的基本结构,学会用伪代码设计一个能满足需求的class,下面是我在本节中所理解的东西,

第一步:明确设计需求,我们可以仔细看一下作者写出的功能表,显然,就功能而言,它并不完善,但能满足一方的需求,这里我们可以感觉一下作者的专业品质:以用户需求为目标,我们的软件常常有这样问题,几百mb的程序,事实上我们真正用到的可能不足百分之一,成本和资源都得到很大的浪费,好像只满足了设计者的虚荣心,

第二步:确定要封装的数据,当然,我们先要明白的是:封装的目的是为了保证对象数据的相对安全,要通分理解封装的涵义,比如:

class a  {

int i

public:

….};

class b {

 a s;

public:

….}

几天前就有人问我这样的问题。,b是否可以操作s中的数据,答案是:yes。但是如果这样问。。s中的数据在b是否可用,答案则是,no,原因在于对于封装的数据而言,只有通过s自身的方法才有权使用。那么b如何操作s的数据呢?这就引出了第三步.

第三步,设计公有接口。个人觉得接口和方法是有区别的,接口包括运算符和方法,当然他们都靠函数完成。但对函数的实现目标有着明显的不同,运算符考虑的是对象之间的关系。而方法考虑的是对象本身属性的操作,对于设计一个数据类型来说显然前者更重要,对于内置的数组来说。我们并没有考虑其本身的东西。但是,谁能说他不算class呢?不过不是我们设计的罢了,

接下来,谈谈一些习惯问题,可能先看国内教材的人都会发现。在本书中public写在private之前。看起来好像没有多大的区别,其实我们应该发现,如果私有成员写前面关键字private可以不写,这不利于代码的可读性,我们要时刻为自己以后的合作提供良好习惯和代码风格。这样也该是程序员的基本素质之一吧?

 

C++ Primer Plus第六版 第十四章 编程练习答案

这章有点难的= =。。。那个虚MI和模板把我看的有点晕QAQ //main.cpp #include #include "winec.h" int main() { using std::cin...
  • zhaoshu01234
  • zhaoshu01234
  • 2015年12月05日 13:52
  • 1465

C++ Primer Plus第六版 第六章 编程练习答案

/***************************************************************************************************...
  • zhaoshu01234
  • zhaoshu01234
  • 2014年07月16日 23:18
  • 3930

C++Primer第五版 8.2.1节练习

练习8.4:编写函数,以读模式打开一个文件,将其内容读入到一个string的vector中,将每一行作为一个独立的元素存于vector中。 答:见 练习8.4.cpp练习8.5:重写上面的程序,将每...
  • fengzhanghao23
  • fengzhanghao23
  • 2015年09月17日 07:23
  • 1340

C++ primer 读书笔记(6)

switch语句 相对于for if while语句,switch语句
  • u013457107
  • u013457107
  • 2014年05月14日 20:08
  • 315

《C++ Primer 5th》读书笔记6---再谈初始化

针对于C++11的《C++ Primer 5th》相对于上一本书进行了比较大的修改,在整体内容的架构上确实更加合理。 但是对于拷贝初始化和直接初始化的介绍上并不如4th那么清楚。 P441,5th...
  • u010087886
  • u010087886
  • 2015年11月30日 15:37
  • 240

C++primer读书笔记6-类的细节知识

1:类成员函数的调用 Tclass A; A.func(); 实际上func函数里面有一个默认的形参,参数是A.this。所以表面上时A.func(),实际上是Tclass::func(A.th...
  • zhuhuangtianzi
  • zhuhuangtianzi
  • 2014年03月08日 16:24
  • 834

《C++ primer(第四版)》读书笔记6

第18章. 特殊工具与技术 注意:new表达式,placement new表达式,delete表达式,operator new 和 operator delete标准库函数之间的区别...
  • EverSteins
  • EverSteins
  • 2012年02月12日 22:48
  • 400

c++primer读书笔记(6)

第十章的总结: 1.如果可以通过初始化,也可以通过赋值来设置对象的值,应采取初始化,通常效率会更高。 2.在函数声明后面加上const,可以确保不能在函数内更改属性值。 3.用户自己定义的数据类...
  • qq_31029351
  • qq_31029351
  • 2017年02月25日 12:20
  • 69

《C++_Primer》MSDN读书笔记

  • 2013年11月07日 10:42
  • 204KB
  • 下载

C++Primer(4ed)读书笔记

  • 2008年08月24日 11:03
  • 740KB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:《c++ primer》读书笔记6
举报原因:
原因补充:

(最多只允许输入30个字)