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中使用库有困难。 库的形式有多种,如扩展名如L I B的文件,window有扩展名为dll...

C++ 字节数组的转换(C++编程思想-数据抽象例子分析)

C++编程思想,在介绍数据封装给了一个CStash的例子,大概的思想是,建立一个struct,来管理一个动态增长的数组。这个数组可以接受任何类型的基本数据类型。包括示例中的int和char,一个能保存...

C++ Primer 学习笔记_47_类与数据抽象 --类的定义和声明

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

(2011.09.27)《C++ Primer》第三部分学习笔记汇总——类和数据抽象

《C++ Primer》第三部分学习笔记汇总——类和数据抽象   《C++ Primer》 第12章学习笔记 第12章:类 ——在C++中,用类来定义自己的抽象数据类型(abstract da...
  • neicole
  • neicole
  • 2011年09月27日 14:07
  • 894

C++类模板定义与实现的分离—学习C++数据抽象和问题求解

在运用C++模板时,通常会遇到类模板的声明和实现如何分离的问题。本人在学习C++数据抽象和问题求解时,也曾遇到过这类问题。现在说明如何解决这个问题,这里采用的例子是基于数组实现一个栈,具体实现思路是建...

C++数据抽象和问题求解源代码

  • 2016年08月16日 22:11
  • 801KB
  • 下载

C++ Primer(第4版)-第3部分:类和数据抽象——学习笔记

C++ Primer(第4版)-第3部分:类和数据抽象 学习笔记

【从C到C++学习笔记】类声明/公有私有保护成员/数据抽象和封装

内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:C++编程思想学习-数据抽象
举报原因:
原因补充:

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