以前自学过C++的时候,是用的C++ Prime那本教材。学的时候也把所有习题都做过一遍,当时的基础是曾经学过BASIC,C,Fortran,用过Pascal,C#,有BASIC二级计算机证书和三级计算机网络上机优秀成绩。
这次决定要系统学习一下,掌握今后独立开发大型面向对象C++程序和平台的能力。毕竟,今后需要从事的行业是计算密集型的,因此对C++这种面向对象的语言是喜忧参半。C++能高效率的对要编码完成的任务进行抽象,最后的主程序代码异常简单;但总有人说它对科学计算方面有部分效率不高对问题。这次希望能够把这块补上。
第一周的学习主要是C++的基础部分,包括C++的身世和它最主要的特性,class。在第一周的学习中,主要内容是不包含指针的类。这种类不需要考虑在构造函数中分配内存,也不需要在析构函数中释放内存。因此主要需要注意的就是使用初始列对类的成员变量进行初始化。这个是衡量一个C++类设计是否大气的重要指标:)。
一般的,C++类设计应该符合以下要求:
1. 成员变量是私有的,保护起来
2. 构造函数和供外部调用的成员函数是公开的。(除了Singleton设计模式下,类的构造函数设计为私有,类可以控制自身的初始化过程,从而可以控制整个程序中类的实例化数量)
3. 构造函数参数可选,因而可以匹配更多调用形式
4. 操作符重载,对std::ostream的重载可以方便的打印出类的内容,当然,其实不仅仅是std::cout可以使用,std::fstream也是可以的。因此,也能用于输出到文件中
5. 函数的返回和函数的调用,在能够传递引用的时候就不传值,这样速度比较快(局部变量在return的时候只能传值,不能传引用)
6. 操作符重载的时候,也要根据使用者可能会采用的使用方式,返回合适的引用
网友评论