关闭

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

637人阅读 评论(0) 收藏 举报

1、动态内存分配

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

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

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

3、头文件

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

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

4、全局作用域解析

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

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

0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:418534次
    • 积分:4003
    • 等级:
    • 排名:第7746名
    • 原创:67篇
    • 转载:60篇
    • 译文:1篇
    • 评论:33条
    最新评论