假设我有一个包含数据库连接数据成员的对象Employee_Storage
。该数据成员应该存储为指针还是引用?
如果我将其存储为引用,我 不必做任何
NULL
检查。 (NULL 检查到底有多重要?)如果我将它存储为一个指针,它是 更容易设置
Employee_Storage
(或MockEmployee_Storage
) 测试目的。
通常,我一直习惯于将我的数据成员存储为引用。然而,这使得我的模拟对象难以设置,因为我现在必须传入真实/模拟对象,而不是能够传入 NULL
(大概在默认构造函数中)。
是否有好的经验法则可以遵循,特别是着眼于可测试性?
最佳答案
只有在构造时分配引用时,才最好将引用存储为数据成员,而且确实没有理由更改它们。由于无法重新分配引用,因此它们非常有限。
一般来说,我通常存储为指针(或某种形式的模板化智能指针)。这更加灵活 - 既可用于测试(如您所述),也可用于正常使用。
关于c++ - 什么时候将数据成员存储为引用而不是指针更可取?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/957087/