C++编程思想学习-数据抽象

原创 2012年03月28日 17:12:50

1、动态内存分配

       C++使用关键字new动态分配内存。一般表达式为:new Type;如,new unsigned char[bytes],Type也可以是结构体或者类名;用new分配的内存必须用delete来释放。如果,多次申请但是不释放则到达一定程度,内存耗尽,会发生内存泄露。释放时也要注意定的规则,如果释放的是数组则在数组名前要加[],例如:delete []myArray

2、由结构体向C++的转变(这是本人自己定义的,如果有异议,可以提出)

      由于C没有提供命名空间,所有代码都在一个命名空间中。所以,命名冲突是非常多的,产生了好多问题。但我们却发现,结构体中的变量却不会与别的变量产生冲突(结构体将自己的成员变量的范围锁定在本结构体对象的域内。),所以,有人就像,我们只要将函数也放在结构体中作为结构体的成员函数。这样不就解决了成员函数命名冲突这一问题了。这样,结构体中不只包括了成员变量而且包括了操作这些成员变量的函数。这样形式的结构体不就是一个类吗?所以,类就基于此产生了。

3、头文件

      头文件是存放接口规范的地方。C++中造大项目最好的方法是采用库,收集相关的函数到同一对象模块或库中,并且使用同一个头文件存放所有这些函数的声明。这样可以避免随手在文件中声明一个函数,然后,而在头文件中也声明了一个和这个函数同名同返回值的函数,而编译器只看到这个文件中的函数声明,这样如果程序员忘了,这样可能造成适应错误(本来程序员想着是调用头文件中所调用的函数,结果缺调用了,本函数中生命的函数)。所以,C++中将将所有函数的声明都放在对应的在头文件中。而在定义该函数以及使用该函数的文件中包含此头文件(用于检查该函数的使用以及定义是否与声明一致)。但在头文件中不应该包含通过生成代码或者创建变量而分配存储的任何信息。这是因为头文件一般会包含在项目的几个翻译单元中,如果一个标识符在多于一处被分配存储,那么连接器就会报多次定义的错误。

      但是可能会出现多次声明的问题。C++中允许对函数的重声明,只要两个声明匹配即可,但是两者都不允许重声明结构体。所以,一般不将结构体的声明放到头文件中,但是如果一定要放到头文件中,则需要使用预处理器指示的语句来做一定的判断。

4、全局作用域解析

      编译器解释标识符以及函数名时如果有一个局域标识符和全局标示符同名,默认选择局域标识符,所以,为了让编译器选择全局标识符,需要加作用域解析运算符“::“。

        为个人学习C++编程思想时个人心得体会,所以,难免有不严谨之处,甚至有可能是错误的理解。如发现错误,或者疑问。欢迎提出讨论,共同学习、进步

《C++ 编程思想》的学习

初学《C++编程思想》,感觉很不对胃口,可能是习惯了《C++ primer》,同样是讲解相同的某个知识点,但我感觉《C++编程思想》没有primer写得好,没有primer系统、有条理、清晰好懂。但百...
  • wd1603926823
  • wd1603926823
  • 2015年09月25日 20:47
  • 2716

C++(19)类与数据抽象

类 --类的定义和声明【上】 引言:    在C++中,用类来定义自己的抽象数据类型。通过定义类型来对应所要解决的问题中的各种概念,可以使我们更容易编写、调试和修改程序。可以使得自己定义...
  • u011225629
  • u011225629
  • 2015年08月08日 19:41
  • 1211

C++编程思想 第四章数据抽象习题

4-2  C++ Code  1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 ...
  • damon1118
  • damon1118
  • 2013年07月21日 20:34
  • 415

C++ Primer学习总结 第7章 类

第7章 类 1.    引入const成员函数(C++ Primer P231-232) C++类的常量对象是无法调用非const成员函数的,如果想让常量对象调用某个成员函数,必须声明...
  • u013480600
  • u013480600
  • 2015年03月07日 01:02
  • 1592

C++ 数据抽象、数据封装与接口(抽象类)

C++ 数据抽象 数据抽象是指,只向外界提供关键信息,并隐藏其后台的实现细节,即只表现必要的信息而不呈现细节。 数据抽象是一种依赖于接口和实现分离的编程(设计)技术。 让我们举一个现实生活中的真...
  • oJiMoDeYe12345
  • oJiMoDeYe12345
  • 2015年09月23日 15:25
  • 1086

C++的数据抽象及类的由来

与c相比,c++为什么会有一堆类的概念呢 ? 第2章 数据抽象
  • luojj26
  • luojj26
  • 2016年02月27日 22:00
  • 396

c++ 面向对象高效编程 【笔记】什么是数据抽象?

数据抽象
  • sinat_26908721
  • sinat_26908721
  • 2016年11月07日 18:57
  • 474

学习编程重要的是掌握编程思想

求最大值、求和、变量交还这三类是最近遇到的对于掌握核心思想非常重要的编程题目,三种类型的题目分别代表了三种思想,这三种思想都是非常重要的思想,一定要掌握这三种类型编程题的思想核心而不是仅仅记住这三种类...
  • funnyshadan
  • funnyshadan
  • 2015年08月02日 16:14
  • 818

C++编程思想简单理解

C++融合了3种不同的编程方式:C语言代表的过程性语言、C++在C语言基础上添加的类代表的面向对象语言、C++模板支持的泛型编程。         计算机语言要处理两个概念,数据和算法。C++是由C...
  • nlchao
  • nlchao
  • 2015年03月14日 19:17
  • 1368

C++学习------数据抽象

数据抽象最本质的特征,就是把数据类型的使用与它的实现加以分离,它使得程序设计人员能够:(1)把大的系统分解成多个小的部分,每个部分有一个按所处理的数据而设计的接口;(2)这些接口是这个部分的说明,是外...
  • haiyan0106
  • haiyan0106
  • 2007年06月16日 10:44
  • 604
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:C++编程思想学习-数据抽象
举报原因:
原因补充:

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