C++面向对象程序设计-First Week

2017-10-19  本文已影响0人  Letmethinkthink

—————————————————————————————————————————————————

//Knowledge Point:

*类的经典分类:

带pointer和不带pointer

*头文件的防卫式声明:

#ifndef  _COMPLEX_

#define _COMPLEX_

//body

#endif

*模板函数: template<typename T>

*constructor(构造函数):同类名 无返回类型 初值列

*access level(访问级别):public private protected

*overloading(重载):同命不同参

*构造函数可以写在private下 singleton 读取一次

*constant member functions(常成员函数):数据不会改变

*参数传递:pass by value 数据整包传输  pass by reference (to const)  引用(底部为pointer 快)  eg:const complex& (快且不可改)

返回值传递给已存在的对象可以return by reference

返回值传递给不存在的对象需要新的变量接受,不可以返回reference

*friend(友元)

*相同class的各个objects互为friends(友元)

*class规范:

数据存在private下

参数尽量用reference传递(const)

返回值尽量用reference

class的body内该用const用const

构造函数使用初始化列表

*operator overloading (操作符重载-1 成员函数) this

eg:complex::operator += (const complex&r){

            return  _doapl(this,r);

        }

*return by reference 传输者无需知道接收者十一reference形式接受

*operator overloading (操作符重载-2,非成员函数)

inline complex&

operator +(const complex& x,const complex& y){}

*temp object(临时对象) typename()

不可return by reference (临时存在的)

返回local object

—————————————————————————————————————————————————

//Experience

看了群里同学们的讨论争议最多的是:

inline函数的用法

const的用法

指针和引用的异同点

传递参数是传value或reference等

大家讨论的知识点挺细,我看的云里雾里,理解的模模糊糊,也有一些简单的思考和体悟:

inline函数需要给编译器审批,不是打上inline的标签就inline了,编译器会判断。inline失败默认为static函数。

template模板类函数使用起来会更加方便

还有这个星期考试交的C++更加规范的写法让我印象更深,防卫式声明,构造函数的初值列,const该用就用等等,写作业的时候写运算符重载有点卡,思考了好久才运行成功,后来就在优化改进作业程序了,想做的更好一点。关于这周更深入的思考也就没有了,主要是看群里聊天记录有点晕乎乎的,继续加油!

上一篇下一篇

猜你喜欢

热点阅读