Copy constructor with non const rhs arg
Eljay Love-Jensen
eljay@adobe.com
Wed May 12 16:26:00 GMT 2004
hi Paul,
Hmm, I guess pass-by-value a Copy Constructor doth not make.
Solution #1
--------------------------------
#include <memory>
using namespace std;
class Foo
{
public:
Foo(Foo const& in);
private:
auto_ptr<int> m;
};
Foo::Foo(Foo const& in)
: m(const_cast<Foo&>(in).m)
{
}
Foo FooFactory();
int main()
{
Foo f(FooFactory());
Foo f2 = FooFactory();
}
--------------------------------
Solution #2
--------------------------------
#include <memory>
using namespace std;
class Foo
{
public:
Foo(Foo const& in);
private:
mutable auto_ptr<int> m;
};
Foo::Foo(Foo const& in)
: m(in.m)
{
}
Foo FooFactory();
int main()
{
Foo f(FooFactory());
Foo f2 = FooFactory();
}
--------------------------------
HTH.
--Eljay
More information about the Gcc-help
mailing list