C++学习日记_2009_3_24

来源:互联网 发布:文档密码破解软件 编辑:程序博客网 时间:2024/05/28 16:16

     C++大二的时候就学过,但当时并没有什么印像,对OOP技术理解也不是很深刻,之后学习了JAVA,软件工程等课程,对OOP也有了一定的理解,现在开始学习c++,教材是Bruce Eckel 的c++编程思想。


     一些基本概念我感觉还是需要了解的,尽管实践才是王道,可是如果一些概念理解不清的话,编程也会事倍功半。


●对象:问题空间中的事物和他们在解空间中的表示;(万物皆对象;程序就是一组对象,对象之间通过发送消息互相通知做什么;每一个对象都有它自己的由其他对象构成的存储区;每个对象都有一个类型;一个特定类型的所有对象都可能接收相同的消息。)


●创建抽象数据类型是是面向对象程序设计的基本思想。

     

●类描述一组有相同特性的和相同行文的对象,其实际上就是数据类型。


●面向对象程序设计的难题之一是在问题空间中的元素和解空间的对象之间建立一对一的映射。

 

●在关系中存在一个所有参与者都遵从的边界是重要的


●c++中设置类的边界的关键字(访问说明符):public(随后定义对所有人都可用)private(只有该类     的 创建者和该类的内部成员函数可用) protected(与private相似 但继承的类可访问protected成员)


●代码的重用是面向对象程序设计语言的最大优点之一


●创建新类的时候,首先考虑组合(用任何数量和类型的其他对象组成新类,即组合的到新类所希望的到的功能)


●继承表示了在基类型和派生类型之间的相似性,通过继承实现类型等价性,是理解面向对象设计含义的基本途径之一


●重载:改变应经存在的基类函数的行为


●纯代替:用派生类的对象代替基类的对象


●早捆绑,晚捆绑 区别在于在什么时间去确定被调用的代码。早捆绑是指编译器会对特定的函数名产生调用,而连接器将这个调用解析为要执行代码的绝对地址。晚捆绑是指在给对象发送消息的时,在程序运行的时候才去确定被调用的代码,编译器保证这个被调用函数的存在,并执行参数很返回值的类型检查(方法是在真正调用的地插入一段特殊的二进制代码)


●对象的创建和销毁。两种创建方法:通过将对象存放在栈中活静态存储区,存储和生命期可以在编写程序是确定;通过在称为堆的区域动态创建对象,需要多少对象,他们的生命期是什么和他们的准确的数据类型是什么,这些决定在程序运行之中做出。



看上去很乱,很杂,但了解以后要学习什么,那些是重点要理解的。比如访问控制,比如重载和组合的联系区别,以及多态性。每一种语言都有自己的独特之处,就如JAVA的虚拟机,方法,异常处理,内存回收机制等。我想,c++肯定也有其独特及经典之处,但到底是什么,还待以后的学习。

     

原创粉丝点击