C++ 成员函数、访问级别与面向对象编程深度解析
1. 成员函数的深入探讨
1.1 输入输出运算符重载的局限性
在处理记录打印时,不同记录的打印方式可能因阈值而异。然而, >> 运算符难以方便地指定阈值。对于简单类型,重载输入输出运算符是个不错的选择,但在更复杂的情况下,这种方法通常并不适用。
1.2 const 成员函数
以 print_table 函数为例,其参数 records 通过引用传递,但函数并不修改它,因此应将其作为常量引用传递。当进行此修改时,编译器会报错。因为当 records 为常量时, auto rec : records 中的 rec 也必须声明为常量。所以,当 print_table 调用 rec.print() 时, print() 函数内的 this 指向一个常量记录对象。尽管 print() 不会修改记录对象,但编译器必须考虑其修改的可能性。为了告知编译器 print() 是安全的,不会修改任何数据成员,需要在 print() 函数签名和函数体之间添加 const 修饰符。
以下是添加 const 修饰符后的 print
超级会员免费看
订阅专栏 解锁全文
1633

被折叠的 条评论
为什么被折叠?



