OOP HomeWork
This commit is contained in:
12
oop_hw4/hw7/aws.txt
Normal file
12
oop_hw4/hw7/aws.txt
Normal file
@@ -0,0 +1,12 @@
|
||||
一、为什么重载 + 一般用自由函数形式?
|
||||
原因:+ 具有交换律,左操作数不一定是你定义的类对象。自由函数可以让任意顺序都合法,因为左右参数都可以指定类型。
|
||||
|
||||
|
||||
二、为什么重载 += 一般用成员函数形式?
|
||||
原因:a += b 本质是修改 a(左操作数),必须能访问并修改其内部状态。自由函数虽然也能写,但不能直接访问私有成员,需要提供 setter 或 friend,不优雅。
|
||||
|
||||
三、为什么重载 = 必须是成员函数?
|
||||
原因:a = b 是赋值,修改的是左操作数的内部状态,必须有 this 指针。C++ 强制 operator= 只能是成员函数(标准规定)。
|
||||
|
||||
四、为什么重载 << 要用自由函数?
|
||||
原因:std::cout << obj 左操作数是 std::ostream,你没法修改它的定义。如果不用自由函数就会变成 trip << cout,不符合逻辑
|
Reference in New Issue
Block a user