f



private inheritance vs containment

I know that this one has been discused many times and every single book
about C++ advices to first consider containment.

But I feel that there is a legitimate use of private inheritance when a
single condition is met (the base class has no virtual functions, so
inheriting from your class will not have a customization point you don't
intent to give) and the (small) extra performance private inheritance
gives is needed.

Any comments on my thinking.

Thanks in advance.

Sam.

-- 
      [ See http://www.gotw.ca/resources/clcm.htm for info about ]
      [ comp.lang.c++.moderated.    First time posters: Do this! ]

0
Sam
5/27/2007 6:27:17 PM
comp.lang.c++.moderated 10738 articles. 1 followers. allnor (8506) is leader. Post Follow

11 Replies
508 Views

Similar Articles

[PageSpeed] 57

Sam wrote:
> I know that this one has been discused many times and every single book
> about C++ advices to first consider containment.
> 
> But I feel that there is a legitimate use of private inheritance when a
> single condition is met (the base class has no virtual functions, so
> inheriting from your class will not have a customization point you don't
> intent to give) and the (small) extra performance private inheritance
> gives is needed.

As a general advice, you may want to check out this C++ FAQ Lite topic:
[24] Inheritance - private and protected inheritance
http://www.parashift.com/c++-faq-lite/private-inheritance.html

and this message and thread from the past for a particular situation
where private inheritance is very useful:
http://groups.google.com/group/comp.lang.c++.moderated/browse_frm/thread/35c34091a34298f8/f4b765eb77950dfa#f4b765eb77950dfa

However, I cannot imagine a case where private inheritance will give
you any extra performance over containment. Can you give an example?

-- 
Seungbeom Kim

      [ See http://www.gotw.ca/resources/clcm.htm for info about ]
      [ comp.lang.c++.moderated.    First time posters: Do this! ]

0
Seungbeom
5/28/2007 6:29:03 AM
Sam <sakarab@yahoo.com> wrote:

> I know that this one has been discused many times and every single book
> about C++ advices to first consider containment.
> 
> But I feel that there is a legitimate use of private inheritance when a
> single condition is met (the base class has no virtual functions, so
> inheriting from your class will not have a customization point you don't
> intent to give) and the (small) extra performance private inheritance
> gives is needed.
> 
> Any comments on my thinking.

Just the opposite is true. Consider:

class Foo {
public:
    virtual void func();
};

class Bar : private Foo {
public:
    virtual void func(); // override here
};

To do the same with containment would require an extra class:

class FooChild : public Foo {
public:
    virtual void func(); // override here
};

class Bar {
    FooChild foo;
};

-- 
      [ See http://www.gotw.ca/resources/clcm.htm for info about ]
      [ comp.lang.c++.moderated.    First time posters: Do this! ]

0
Daniel
5/28/2007 6:31:14 AM
Seungbeom Kim wrote:
> Sam wrote:
>> ... and the (small) extra performance private inheritance
>> gives is needed.
> 
> However, I cannot imagine a case where private inheritance will give
> you any extra performance over containment. Can you give an example?
> 

When a contained object member function is called, its "this" pointer
must be calculated and passed to it. On the other hand in an inheritance
relationship the "this" pointer is the same with the derived object. No
calculation needed. Example:

struct A
{
     void do_work();
};

// containment
class B
{
private:
     A  mA;
public:
     void do_work()      { mA.do_work(); }
}

// private inheritance
class C : private A
{
public:
     void do_work()      { A::do_work(); }
}

int main()
{
     B    b;

     // gets address of b, calculates address of
     // B::mA and calls A::do_work()
     b.do_work();

     C    c;

     // gets address of c, directlly calls A::do_work()
     c.do_work();
}

Sam.

-- 
      [ See http://www.gotw.ca/resources/clcm.htm for info about ]
      [ comp.lang.c++.moderated.    First time posters: Do this! ]

0
Sam
5/28/2007 12:17:39 PM
In article <f3erhm$fnq$1@mouse.otenet.gr>, Sam <sakarab@yahoo.com>
wrote:

> Seungbeom Kim wrote:
> > Sam wrote:
> >> ... and the (small) extra performance private inheritance
> >> gives is needed.
> > 
> > However, I cannot imagine a case where private inheritance will give
> > you any extra performance over containment. Can you give an example?
> > 
> 
> When a contained object member function is called, its "this" pointer
> must be calculated and passed to it. On the other hand in an inheritance
> relationship the "this" pointer is the same with the derived object. No
> calculation needed.

The above is a micro-optimization that the compiler can likely take care
of itself.

> Example:
> 
> struct A
> {
>      void do_work();
> };
> 
> // containment
> class B
> {
> private:
>      A  mA;
> public:
>      void do_work()      { mA.do_work(); }
> }
> 
> // private inheritance
> class C : private A
> {
> public:
>      void do_work()      { A::do_work(); }
> }
> 
> int main()
> {
>      B    b;
> 
>      // gets address of b, calculates address of
>      // B::mA and calls A::do_work()
>      b.do_work();
> 
>      C    c;
> 
>      // gets address of c, directlly calls A::do_work()
>      c.do_work();
> }

In the above code, the B::do_work function would likely be expanded
inline which means the "calculation" you speak of is done at compile
time, not run time. No performance advantage here.

-- 
      [ See http://www.gotw.ca/resources/clcm.htm for info about ]
      [ comp.lang.c++.moderated.    First time posters: Do this! ]

0
Daniel
5/28/2007 5:27:15 PM
Daniel T. wrote:
> Sam <sakarab@yahoo.com> wrote:
> 
>> I know that this one has been discused many times and every single book
>> about C++ advices to first consider containment.
>>
>> But I feel that there is a legitimate use of private inheritance when a
>> single condition is met (the base class has no virtual functions, so
>> inheriting from your class will not have a customization point you don't
>> intent to give) and the (small) extra performance private inheritance
>> gives is needed.
>>
>> Any comments on my thinking.
> 
> Just the opposite is true.
> 

I don't really understand what your point is.
Can you elaborate please?

Sam.

-- 
      [ See http://www.gotw.ca/resources/clcm.htm for info about ]
      [ comp.lang.c++.moderated.    First time posters: Do this! ]

0
Sam
5/28/2007 5:32:26 PM
In article <f3d8g6$o8l$1@news.Stanford.EDU>, Seungbeom Kim
<musiphil@bawi.org> wrote:

> 
> However, I cannot imagine a case where private inheritance will give
> you any extra performance over containment. Can you give an example?

struct Private
{
   void foo(){};
}

class A:private Private
{
public:
   using Private::foo;
};

class B
{
   Private b;
public:
   void foo() {b.foo();}
};

A  a;
B b;

b.foo() directly calls B::foo(), which calls Private::foo() but
a.foo() directly calls Private::foo().  Your compiler probably
will optimize the excess call away but private inheritance guarantees
the direct call of Private::foo().

Further private inheritance gives instant documentation that A uses
foo of Private with no changes. and using statements are ussually
shorter and less error prone than forwarding functions.  Take your
pick.


-- 
      [ See http://www.gotw.ca/resources/clcm.htm for info about ]
      [ comp.lang.c++.moderated.    First time posters: Do this! ]

0
Carl
5/28/2007 7:48:09 PM
Sam <sakarab@yahoo.com> wrote:
> Daniel T. wrote:
> > Sam <sakarab@yahoo.com> wrote:
> > 
> > > I know that this one has been discused many times and every
> > > single book about C++ advices to first consider containment.
> > >
> > > But I feel that there is a legitimate use of private inheritance
> > > when a single condition is met (the base class has no virtual
> > > functions, so inheriting from your class will not have a
> > > customization point you don't intent to give) and the (small)
> > > extra performance private inheritance gives is needed.
> > >
> > > Any comments on my thinking.
> > 
> > Just the opposite is true.
> 
> I don't really understand what your point is. Can you elaborate
> please?

Maybe the FAQ will help:
http://www.parashift.com/c++-faq-lite/private-inheritance.html#faq-24.3

My point is that a legitimate use of private inheritance is when the
base class *does* have at least one virtual function, and you want to
override that function, but don't want the child class to be convertible
into the parent class.

-- 
      [ See http://www.gotw.ca/resources/clcm.htm for info about ]
      [ comp.lang.c++.moderated.    First time posters: Do this! ]

0
Daniel
5/29/2007 12:40:37 AM
On May 27, 9:27 pm, Sam <saka...@yahoo.com> wrote:
> I know that this one has been discused many times and every single book
> about C++ advices to first consider containment.
>
> But I feel that there is a legitimate use of private inheritance when a
> single condition is met (the base class has no virtual functions, so
> inheriting from your class will not have a customization point you don't
> intent to give) and the (small) extra performance private inheritance
> gives is needed.

I use it in one of my template libraries.  The basic idea is that the
class implements an abstract interface, but that interface cannot be
accessible externally or to derived classes; the class limits access
to that interface via a mutex.  This ensures that the class itself can
cast to the abstract class under its own terms but nothing else can.
It's difficult to describe in a post, but here is the link.
http://capsule-ta0kira.sourceforge.net/
http://capsule-ta0kira.sourceforge.net/#IOS

Kevin P. Barry


-- 
      [ See http://www.gotw.ca/resources/clcm.htm for info about ]
      [ comp.lang.c++.moderated.    First time posters: Do this! ]

0
ta0kira
5/29/2007 12:44:45 AM
Daniel T. wrote:
> In article <f3erhm$fnq$1@mouse.otenet.gr>, Sam <sakarab@yahoo.com>
> wrote:
> 
>> When a contained object member function is called, its "this" pointer
>> must be calculated and passed to it. On the other hand in an inheritance
>> relationship the "this" pointer is the same with the derived object. No
>> calculation needed.
> 
> The above is a micro-optimization that the compiler can likely take care
> of itself.

Our perspective differ. You call it "micro-optimization", I call it "(small)
extra performance", others are concerned about the overhead of a virtual call
and others don't (virtual call's overhead compared to the containment overhead
is almost the same, fetch one extra address, the address of a function in the
first case, the address of the this pointer of the contained object in the
later).

> 
>> Example:
>>
>> struct A
>> {
>>      void do_work();
>> };
>>
>> // containment
>> class B
>> {
>> private:
>>      A  mA;
>> public:
>>      void do_work()      { mA.do_work(); }
>> }
>>
>> // private inheritance
>> class C : private A
>> {
>> public:
>>      void do_work()      { A::do_work(); }
>> }
>>
>> int main()
>> {
>>      B    b;
>>
>>      // gets address of b, calculates address of
>>      // B::mA and calls A::do_work()
>>      b.do_work();
>>
>>      C    c;
>>
>>      // gets address of c, directlly calls A::do_work()
>>      c.do_work();
>> }
> 
> In the above code, the B::do_work function would likely be expanded
> inline which means the "calculation" you speak of is done at compile
> time, not run time. No performance advantage here.
> 

There are cases where the compiler can optimize the "calculation" / passing of
the this pointer, if for example

1. the address of the container object is the same with the contained object
2. the code of the A::do_work() function is known to the compiler not to use
any class member variables or methods so it doesn't need a this pointer
3. the called functions is known to access only class member variables that
can be calculated as offset from the address of the container object.

The above list of course is not exhaustive and is implementation dependent.
But private inheritance is not (implementation dependent).

Sam.

-- 
      [ See http://www.gotw.ca/resources/clcm.htm for info about ]
      [ comp.lang.c++.moderated.    First time posters: Do this! ]

0
Sam
5/29/2007 4:49:44 PM
Daniel T. wrote:
> Sam <sakarab@yahoo.com> wrote:
>> Daniel T. wrote:
>>> Sam <sakarab@yahoo.com> wrote:
>>>
>>>> But I feel that there is a legitimate use of private inheritance
>>>> when a single condition is met (the base class has no virtual
>>>> functions, so inheriting from your class will not have a
>>>> customization point you don't intent to give) and the (small)
>>>> extra performance private inheritance gives is needed.
>>>>
>>>> Any comments on my thinking.
>>> Just the opposite is true.
>> I don't really understand what your point is. Can you elaborate
>> please?
> 
> Maybe the FAQ will help:
> http://www.parashift.com/c++-faq-lite/private-inheritance.html#faq-24.3
> 
> My point is that a legitimate use of private inheritance is when the
> base class *does* have at least one virtual function, and you want to
> override that function, but don't want the child class to be convertible
> into the parent class.
> 

I feel there is a misunderstanding going on here and after (re)reading my
original post it possibly is my fault.

Please change the words "But I feel that there is a legitimate use of private
inheritance" with "But I feel that there is **one more** legitimate use of
private inheritance".

Does this make a difference?

Sam.

-- 
      [ See http://www.gotw.ca/resources/clcm.htm for info about ]
      [ comp.lang.c++.moderated.    First time posters: Do this! ]

0
Sam
5/29/2007 4:50:14 PM
On 5/29/07 4:49 PM, in article f3i6uv$pmu$1@mouse.otenet.gr, "Sam"
<sakarab@yahoo.com> wrote:

> Daniel T. wrote:
>> In article <f3erhm$fnq$1@mouse.otenet.gr>, Sam <sakarab@yahoo.com>
>> wrote:
>>
>>> When a contained object member function is called, its "this" pointer
>>> must be calculated and passed to it. On the other hand in an inheritance
>>> relationship the "this" pointer is the same with the derived object. No
>>> calculation needed.
>>
>> The above is a micro-optimization that the compiler can likely take care
>> of itself.
>
> Our perspective differ. You call it "micro-optimization", I call it "(small)
> extra performance", others are concerned about the overhead of a virtual call
> and others don't (virtual call's overhead compared to the containment overhead
> is almost the same, fetch one extra address, the address of a function in the
> first case, the address of the this pointer of the contained object in the
> later).

There is no "extra performance" obtained by using private inheritance
instead of containment in the example below - because the
"computational work" required by the semantics of either approach is
the same. In both cases, two methods are called and each is passed a
"this" pointer (at least conceptually) as a hidden argument. Since
neither of the "this" pointer arguments so passed is any more
expensive for the compiler to obtain than the other - and since
obtaining neither pointer requires any additional runtime information
over and above what is needed to obtain the other pointer - there is
no basis for concluding that private inheritance offers any
performance advantage (however minuscule) over containment.

In particular, any comparison between containment and virtual method
dispatching is simply erroneous. The compiler does not need b's
address in order to obtain b.mA's address. Because b.mA is located at
a known location within a B object (which in the code below happens to
be zero), the compiler can just as easily pass mA as a "this" pointer
argument as it can a pointer to b itself.

And real-world C++ compilers bear this observation out: on a typical
machine architecture, local variables are referenced as offsets
relative to a stack pointer. So, for example, if b is located at
0(SP), then mA would also be found at 0(SP) (in the example below) -
but even if mA were located 4(SP) or 8(SP) or wherever - there would
be no additional overhead incurred: instead of passing 0(SP) to each
of the two methods, the compiler would pass 0(SP) to the first method
and 4(SP) to the second and do so no less efficiently.

>>
>>> Example:
>>>
>>> struct A
>>> {
>>>      void do_work();
>>> };
>>>
>>> // containment
>>> class B
>>> {
>>> private:
>>>      A  mA;
>>> public:
>>>      void do_work()      { mA.do_work(); }
>>> }
>>>
>>> // private inheritance
>>> class C : private A
>>> {
>>> public:
>>>      void do_work()      { A::do_work(); }
>>> }
>>>
>>> int main()
>>> {
>>>      B    b;
>>>
>>>      // gets address of b, calculates address of
>>>      // B::mA and calls A::do_work()
>>>      b.do_work();
>>>
>>>      C    c;
>>>
>>>      // gets address of c, directlly calls A::do_work()
>>>      c.do_work();
>>> }
>>
>> In the above code, the B::do_work function would likely be expanded
>> inline which means the "calculation" you speak of is done at compile
>> time, not run time. No performance advantage here.
>
> There are cases where the compiler can optimize the "calculation" / passing of
> the this pointer, if for example
>
> 1. the address of the container object is the same with the contained object
> 2. the code of the A::do_work() function is known to the compiler not to use
> any class member variables or methods so it doesn't need a this pointer
> 3. the called functions is known to access only class member variables that
> can be calculated as offset from the address of the container object.
>
> The above list of course is not exhaustive and is implementation dependent.
> But private inheritance is not (implementation dependent).

Compiled code is always "implementation-dependent." Eliminating a
second load instruction to pass the "this" argument to the second
method is just as much an optimization as optimizations #1-3 on the
list above. So when comparing the efficiencies of alternate
approaches, it only makes sense to assume an optimally efficient C++
compiler. Otherwise, if one is going to assume that the C++ compiler
does not produce optimally efficient code - then one cannot also
assume that the inefficiencies of the compiler-generated code (and
likewise, whatever optimizations the compiler did apply) will only
favor private inheritance. Yet that is exactly the argument that is
being made here: that the compiler will be smart enough to optimize
away a second load instruction for a this pointer argument when
calling the second method - but at the same time the compiler cannot
be smart enough to eliminate the load instructions completely because
they are not being used at all.

Greg


-- 
      [ See http://www.gotw.ca/resources/clcm.htm for info about ]
      [ comp.lang.c++.moderated.    First time posters: Do this! ]

0
Greg
6/1/2007 6:53:04 AM
Reply:

Similar Artilces:

C vs. C++ vs. Java
Hi! I'dont have any experiences in programming... what language should I start learning???? C? C++ or Java`? greetz Start with C go on to C++ and then on to JAVA. And you will C what how that helps. priyasmita_guha@yahoo.co.in wrote: > Start with C go on to C++ and then on to JAVA. > And you will C what how that helps. The OP's question is not topical to this group. It would be better answered in comp.programming among others. Please try to redirect off topic questions rather than answering them here. hi there! i think u sho0uld start wid C language and LET US C is an x...

Matlab vs C++ vs C#
Which of these should a person interested in financial modeling learn? "BB" <bb.donotmail@nomail.invalid> wrote in message news:ef1020b.-1@webx.raydaftYaTP... > Which of these should a person interested in financial modeling > learn? > If these are your only options, I would pick Matlab myself. You do much more with Matlab in much less time. Also debugging in Matlab is easy. Matlab also has a financial toolbox http://www.mathworks.com/access/helpdesk/help/toolbox/finance/finance.shtml Nasser Nasser Abbasi wrote: > > "BB" <bb.donotmai...

floating point programming: c/c++ vs matlab vs fortran vs ???
Dear all, I am helping someone code a model of an optical amplifier in C code (with the aim of verifying results published by someone else). The model seems to behave correctly for a limited range of parameters, but is quite off outside this range. This is unacceptable; AFAICT theres no algorithmic reason the model should fail, so I suspect things are going wrong in floating point land. As I've been reading up on the matter I find there is a lot that could be going wrong: floating point exceptions, rounding errors etc. The model can be run reasonably quick, so we'd happily sacrifice ...

Cellular automata benchmarks: Java vs C++ vs Java vs C++
I love benchmarking. Here are some very interesting results which compare different cellular automata implementations in C++ and Java, with different versions of the Java VM: Sun vs Microsoft (MS). MCell is a Windoze C++ program, MJCell is MCell ported to Java, SARCASim is a 5++ year old C++ Windoze program of mine and my Modern Cellular Automata Java applet is rather unique. Because of restrictions in the size of MJCell's universes almost all benchmarks were performed using an 800 by 600 universe. All benchmarks were performed using the Brian's Brain three state cellular a...

inheritance vs. containment
What would be the theoretical advantages of containment over inheritance? [ See http://www.gotw.ca/resources/clcm.htm for info about ] [ comp.lang.c++.moderated. First time posters: Do this! ] Mohammad wrote: > What would be the theoretical advantages of containment over > inheritance? Nothing, if you need polymorphism and everything if you don't. There are several books ruminating on the topic, one is Design Patterns Explained, this topic comes up pretty frequently in Herb Sutters books... and IIRC Scott Meyers mentions this as well. One major idea here is coup...

Fortran Vs C, C++, C#
What can Fortran do that C, C++, C# can't? Along similar lines where would Fortran be a superior chice over C, C+ +, or C# Jeff RF ENGINEER55 > What can Fortran do that C, C++, C# can't? > > Along similar lines where would Fortran be a superior chice over C, C+ > +, or C# None that I know of. Here is a dated (1992) paper comparing F77, F90, C and C++ for engineering pgrograms: http://www.leshatton.org/Documents/JSX_0192.pdf Me, myself and I, we all prefer C++. I like strong typing and mandatory function prototypes. I also like function overloa...

Android vs Qt vs C/C++
Hi All, I am a mobile application developer and this is the first time i have entered into developing an embedded application from scratch. I know that the title is a bit misleading and there will be rebuts in the grounds that Android is an OS and Qt is a framework and C/C++ is a language. Let me explain my requirement. I need to develop an embedded device which will be installed in a vehicle and it will periodically send telemetrics data to the cloud server using GSM modem. The telemetrics will include 1. GPS position data 2. Accelerometer readings 3. Image/Video data 4. It needs to li...

C vs. C++
Hi everybody No trolling here, but I just thought C++ was just object oriented C but I was recently surprised to learn that C was much more used in numerical, computational physics. So here's my question : why would C be better for this kind of programming. beggars.banquet@gmail.com wrote: > Hi everybody > No trolling here, but I just thought C++ was just object oriented C > but I was recently surprised to learn that C was much more used in > numerical, computational physics. So here's my question : why would C > be better for this kind of programming. Physicists tend ...

C++ vs C
I've just been working with a bit of C++ code for the first time (with a view to spending a couple of hours converting it to C. Or to *any* language that mere humans could understand, for that matter). But after that experience I don't think I'll ever complain about anything in C again! The thing was bristling with templates, specialisation templates, classes, namespaces, operators, friends, the full works, used, as far as I could see, just for the sake of it. (I managed to get rid of the templates, and it still worked..) This was a jpeg encoder/decoder, a comp...

C++ vs. C#
Very recently, I started a thread enquiring about the C++ object model. All that remains in my mind about that thread is: "why would you want to do that?", and "it's not portable" and probably other irrelevancy (read, no real answers). I spoke of "Lightweight" vs. "Heavyweight" objects. And of "representation in memory of an object" as important. Well guess what? I stumbled upon some C# description pages of structs, classes and the like. Guess what? What seems to be in this NG as "don't do that" and "non-portable", ...

C++ vs C
Hello, I'm writing an embedded application and I'm trying to decide whether to do it in C or C++. Does anyone know where I can find some statistic data comparing the two languages (size and performance)? Thanks, Nataly natush wrote: > Hello, > I'm writing an embedded application and I'm trying to decide whether to > do it in C or C++. Does anyone know where I can find some statistic > data comparing the two languages (size and performance)? > > Thanks, > Nataly Hi Nataly, I don't think that you can make a comparison between the two languages (in ...

C vs. C++
What is the main difference between C and C++. If I were to choose one to study so as to learn about game development which should I choose and why? Thx, R.Spinks R.Spinks wrote: > What is the main difference between C and C++. If I were to choose one to > study so as to learn about game development which should I choose and why? > > Thx, > > R.Spinks > > C++ is a superset of C, adding Object Oriented programming and Generics via templates. C++ is the main programming language of game developers, so it is very relevant to the industry. ...

obj-c vs c++ vc c
what are the differences between obj-c and c++? obj-c and c? i'm learning c at the moment, and i when i'm ready i want to take the "next step" to either c++ or obj-c, but i'm not sure which. jesse jesse wrote: > > i'm learning c at the moment, and i when i'm ready i want to take the "next > step" to either c++ or obj-c, but i'm not sure which. C++ is a lot more popular and so is more useful in the "real world". Objective-C is a very nice language but is poorly adopted. On the other hand, if you are working ...

Inheritance vs containment for policies
Hello all, The methodology of policy-based design states that one should inherit from policy classes and, of course, these classes must provide an agreed-upon public interface and semantics. I would like to understand better why inheritance, rather than containment, is espoused. The only things I can see that inheritance provides beyond containment is the possibility of polymorphism and access to protected members. Since neither of these are needed when trying to gain access to the functionality of a policy class, why is inheritance espoused over containment? Thanks, Dave "Dave&qu...

Web resources about - private inheritance vs containment - comp.lang.c++.moderated

Inheritance - Wikipedia, the free encyclopedia
Inheritance is the practice of passing on property , titles , debts , rights and obligations upon the death of an individual . It has long played ...

Inheritance - Wikipedia, the free encyclopedia
Inheritance is the practice of passing on property , titles , debts , rights and obligations upon the death of an individual . It has long played ...

Time Mysteries: Inheritance HD (Full) on the App Store on iTunes
Get Time Mysteries: Inheritance HD (Full) on the App Store. See screenshots and ratings, and read customer reviews.

Inheritance - Flickr - Photo Sharing!
Megen inherited all of Michelle's wedding magazines.

Inheritance by James Moll - Trailer - POV 2008 - PBS - YouTube
Inheritance by James Moll - Trailer - POV 2008 - PBS - YouTube

What's the best investment strategy for mother's inheritance?
... a safe investment that can be liquidated quickly should she need money to go into a nursing home. Q. My elderly mother has come into an inheritance ...

Inheritance impatience causing families to rob granny for school fees, renovations
Elderly Australians are effectively being robbed by family members in a &quot;casual larceny&quot; that sees bank accounts established to provide ...

Family of mining magnate Michael Wright splash inheritance cash on WA real estate
WHEN you’ve got a $400 million inheritance, why stop at just one mansion?

Bali woman 'swaps faith' for inheritance
A woman accused of ordering the murder of her Aust husband is switching religion to gain her inheritance.

Inheritance
Best way to invest a lagacy QUESTION: I have received a $65,000 inheritance. My husband and I are in our late 50's and have an unsubstantial ...

Resources last updated: 2/9/2016 11:21:51 AM