让我们假设我们有一个statically(Type mObject;)创建的对象,它通过使用getObject()方法向程序员公开.我想知道以这种方式获取对象有哪些优点和缺点?
Type* SomeClass::getObject() {
return &mObject;
}
// the programmer types
Type* obj = someClassObj.getObject();
obj->someMethod();
Run Code Online (Sandbox Code Playgroud)
这样:
Type& SomeClass::getObject() {
return mObject;
}
// the programmer types
Type& obj = someClassObj.getObject();
obj.someMethod();
Run Code Online (Sandbox Code Playgroud)
在纯C++中,我们很少使用指针.特别是原始指针.
大多数代码处理对象实例.由于C++具有通过身份引用它们的引用,与C不同,获取地址和传递指针是为必须的情况保留的.喜欢:
您的示例不适合任何类别,因此您使用引用.这会向用户传达一个对象将始终存在的信息.因此,大部分时间都没有必要修复obj,你可以继续someClassObj.getObject().someMethod().第一种情况需要在它们之间进行NULL检查.