[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
lifetime of temporaries
From: |
sebastien333 |
Subject: |
lifetime of temporaries |
Date: |
Wed, 04 Jul 2007 15:55:34 -0000 |
User-agent: |
G2/1.0 |
I have the following program:
class A
{
string s;
public:
A(const string& a) : s(a) { cout << s << endl; }
};
class B : public A
{
public:
B(const string& b) : A(b) { }
};
class C : public B
{
public:
C() : B(string("ABC")) { }
};
int main(int argc, char *argv)
{
unsigned char i = 0;
C* c = new C;
delete c;
}
/////////////////////////////////////////////////////////
If I put the delete c statement in comment, valgrind will report that
I'm leaking c AND the string temporary created when invoking B ctor.
why ?
I would have expected that the temporary would be destroyed after c
was created, not haning there until I destroy c.
- lifetime of temporaries,
sebastien333 <=