c++参考书:C++ Primer,Effective C++
c语言面向过程,c++(以前为c with class)面向对象面对对象的语言还有Java,C#
教学目的:良好的方式,快捷的效率,正规、大气的编程习惯。
•class(私有)是定义类的关键字,类似于struct(公用)定义
Complex(复数):无指针的class;
string(字符串):有指针的class
class之间的关系有:继承,复合,委托
Object Based(基于对象):面对单一class的设计;
Object Oriented(面对对象):面对多重class的设计,class之间的关系。
教材:C++Primer C++ programming language
效率提高:Effective C++ 及其中文版(侯捷)
源码: c++ standard library 及 stl源码剖析代码
基本形式: .h(header files):class declaraion(声明).cpp:
#include<标准库> #include"自建"•C与C++在输出方面的区别:C cout <<"i="
•三行与两行区别:先初始化后赋值
•class模板(template):少数不同,定义T,后改为int double等
•访问级别:关于公共private(封装)、私有 (P20)
•C++允许有多个构造函数-overlording(重载)。同名的函数可以有一个以上(分情况)
•ctor构造函数放入 private区(不能被外界调用):singleton设计模式
•常量函数:加const(函数内数据不会发生变化),函数该加const的地方不能少
•参数传递:pass by view vs reference引用(to const、xxx&),尽量所有参数传递使用引用。和指针一样,参数会发生变化;如果不希望改变内容使用to const(const xxx&)。
•返回值传递:return by value vs reference 引用,和参数传递相同。当函数有一定时效(local object)时不能用引用。传递者无需知道接受者是以reference引用形式接受
•friend(友元):friend不能太多,同一个class的各个对象互为friends
•操作符重载-1:成员函数,如+=(赋值加法) complex::operator +=(const complex& r)一连串操作符
•class定义(class body之外的定义):操作符重载-2,非成员函数(无this) +
•临时对象(temp object):typename()如real(x);返回的如果是个local object不能返回引用(return by reference)
•-(负号)判断是负号(negate)还是减号
•==(判断,等不等于)!=(判断,不等于) <<(右边输出到左边)
•共轭复数: return complex (real(x),-imag(x));