重複の可能性:
ポインターと参照
一部のインターフェイスでポインターの代わりに参照を使用することに利点があるかどうか疑問に思っています。より具体的に、小さな例を考えてみましょう:
struct MyInterface {
virtual ~MyInterface() {}
virtual void f() = 0;
};
class MyClass : public MyInterface
{
virtual void f()
{
std::cout << "F()" << std::endl;
}
};
void myFunction(MyInterface& obj);
int main(int argc, char *argv[])
{
MyInterface* pObj = new MyClass;
myFunction(*pObj);
delete pObj;
getchar();
return 0;
}
void myFunction(MyInterface& obj)
{
obj.f();
}
myFunction ではMyClassのインスタンスをポインタとして渡すことができると、多くの本に書かれています。私の質問は、良い習慣 (ポインターまたは参照) と見なすことができるものと、より効率的なものは何ですか?
この質問が何らかの形で以前に尋ねられた場合は申し訳ありません。