Hello everyone,


Some people doubt that the design below is inferior compared to design which makes f, either Foo* or Foo&. The reason is below design will waste memory space and degrade performance by creating a new instance.

I think it depends. If we really needs to wrap a new instance, I think the following design is fine. If we needs to refers to an existing instance, this design is inferior because it will waste memory space and degrade performance by creating a new instance and destroy the original one.

Code:
class Foo;

class Goo
{
    Foo f; // change to Foo* pf or Foo& rf is always better?
}

thanks in advance,
George