Boolan Week1笔记

(1)头文件的防卫式声明:

#ifndef __XXX__

#define __XXX__

 …

#endif

(2)class template

template<typename T>

class XXX

{

//将类型换做T

}

{

//用时具体指定T的类型

XXX<int> …

XXX<double>…

}

(3)inline

函数若在class body内定义则自动成为inline候选人,否则可加inline,但是否会变成inline不确定。

(4)access level 访问级别

public 公开,private 私有,一般数据都需要private封存,有的函数也可以根据需要private。

(5)initialization list  初值列  (构造函数的特有用法)

XXX(T a=0, T b=0): A(a) , B(b) {}

//XXX为类名,()内可以设置初值, A/B为封存的数据

(6)const member functions 常量成员函数

double real() const { return re; }

// 不会改变数据内容的在 () 和 {} 之间加 const

(7)pass by reference 传引用

double //pass by value

complex& //pass by reference

// pass by reference 绝大多数时候优于 pass by value,尽量传reference,但如果函数内新产生的local object需要return,不可以传 reference。

//传递者无需知道接受者是以reference形式接收。

(8)friend 友元

private:

friend xxxx;

//可以自由取得 friend 的 private 成员


(!)相同class的各个objects互为friends

(9)operator overloading 操作符重载

inline complex&

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

{

        return __doapl (this, r);

}//成员函数会自动把操作符左边的数据存为this不能写出来,但可以使用

//全局函数无this

* cout 的重载

ostream& operator << (ostream& os, …)

{

return os << ‘ ’ << … ;

}

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容