浙江大学 25-26春夏 面向浙江大学 25-26春夏 面向Try Now! 开始模拟测试友元函数 (Friend Function):可以直地把 (Class)”想象成一座房子,类中的私有成private)就像是房子的私密区域(如室、保箱)。正常情况下,只有住在座房子里的家庭成(即类的成函数)才能些私密区域。但是,如果你有一位非常信任的朋友,你在家里明宣布这是我的朋(通 friend 关键字声明)。那么,即使这位朋友并不属于你的家庭(即不是类的成函数),他依然有特权入你的私密区域,直接访问你类中的 private protected 数据。函数 (Inline Function):使用 inline 关键字修饰的函数。在代码编译阶段,编译器会把函数地方,直接用函数的具体代(函数体)掉,类似于宏展为什么适合功能不复杂,但频繁调用需要消除开销:普通的函数用是有代价的(需要保存当前境、参数入、跳内存地址、行后再跳回并恢复环境)。如果一个函数会被成千上万次地用,这种调用开销加起来就会非常大。内相当于直接把代来,省去了所有的函数开销程序得更快。功能简单可以避免代:如果一个函数内部代非常多(比如几百行)做内,那么每个用它的地方都会被塞入几百行代致最终编译出的程序体剧变大(Code Bloat),反而可能行速度(因 CPU 的指令存装不下)。因此,内函数通常只适合 1~5 行的简单(如属性的 getter/setter)。访问控制符 (public, protected, private) 选择与使用private(私有,首:用于隐藏内部实现细节数据。通常,所有的核心数据成量)以及只在类内部使用的助函数,都应设为 private。它不防外人,也防子类,保类的核心不被意外改。public(公外接口):用于定类能提供的外部服。只有那些你明希望外部代(如 main 函数或其他象)直接用的方法,才设为 publicprotected(保为继承而生)什么候用? 当你设计一个准承的父类(基类)时。为什么用? 有些方法或数据,你不想让外部的普通用户直接看到和滥用(所以不能用 public),但让它的子类(派生类)展功能使用(所以不能用 private 限制得太死)。经典场景:父类提供的一个底通用算方法,外部不应该直接用它,但子类在实现自己特定的业务逻辑时,必赖这个方法来算。此方法设为 protected 合适。 (Static Members) const 函数易函数没有 this :静量和函数)属于整个类,而不是属于某个具体的例。因不和具体定,所以静函数内部根本不存在 this this 指向当前例)。函数只能访问:由于没有 this ,静函数无法知道要去操作个具体象的数据。因此,它不能直接用非静函数,也不能直接访问非静态变量,只能操作其他静员变量全类共享一份:无论创建了多少个类的象,静员变量在内存中永只有唯一的一份,所有象共享一份数据。const 函数的兼容性const 函数相当于不修改协议。普通象(非 const可写)完全可以 const 函数(因只是要求只,要求降低了,完全兼容);但反来,const 对象(只读)绝对不能调用非 const 函数(因有被修改的风险)。