我有一个 Text
类,它有一些方法可以返回一个指向自身的指针,允许链接调用。 (老实说,我只是喜欢链接的外观和感觉!)
我的问题是,哪个在实践中通常更好(在安全性 > 多功能性 > 性能方面)?返回和使用引用文献?还是返回并使用指针?
两者的一个例子,从 Pointer 版本开始:
class Text{
public:
Text * position(int x, int y){
/* do stuff */
return this;
}
Text * write(const char * string);
Text * newline();
Text * bold(bool toggle);
Text * etc();
...
};
textInstance.position(0, 0)->write("writing an ")->bold(true)->write("EXAMPLE");
textInstance.position(20, 100)
->write("and writing one across")
->newline()
->write("multiple lines of code");
与引用版本相比:
class Text{
public:
Text & position(int x, int y){
/* do stuff */
return *this;
}
Text & write(const char * string);
Text & newline();
Text & bold(bool toggle);
Text & etc();
...
};
textInstance.position(0, 0).write("writing an ").bold(true).write("EXAMPLE");
textInstance.position(20, 100)
.write("and writing one across")
.newline()
.write("multiple lines of code");
最佳答案
指针和引用的区别很简单:指针可以为空,而引用不能。
检查您的 API,如果返回 null 有意义(可能表示错误),请使用指针,否则使用引用。如果您确实使用指针,则应添加检查以查看它是否为空(此类检查可能会降低您的代码速度)。
这里看起来引用更合适。
关于c++ - 方法调用链接;返回指针还是引用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20864260/