【Boolan】C++面向对象编程(上)-Clarence

2017-07-31  本文已影响0人  蟹黄堡没

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++在输出方面的区别:Ccout <<"i=" <

头文件中防御式声明:#ifndef _COMPLEX_

#define _COMPLEX_

头文件的布局:(前置声明,类声明,类定义)

class声明:class头>class体

三行与两行区别:先初始化后赋值

class模板(template):少数不同,定义T,后改为int double等

访问级别:关于公共private(封装)、私有 (P20)

C++允许有多个构造函数-overlording(重载)。同名的函数可以有一个以上(分情况)

ctor构造函数放入 private区(不能被外界调用):singleton设计模式

常量函数:加const(函数内数据不会发生变化),函数该加const的地方不能少

参数传递:pass byviewvsreference引用(to const、xxx&),尽量所有参数传递使用引用。和指针一样,参数会发生变化;如果不希望改变内容使用to const(const xxx&)。

返回值传递:return byvaluevsreference引用,和参数传递相同。当函数有一定时效(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));

上一篇下一篇

猜你喜欢

热点阅读