c++问题,请高人指点迷津,c++ faq lite的一个例子# Programming - 葵花宝典
p*v
1 楼
class Wilma { };
class Fred {
public:
Fred() : p_(new Wilma()) { }
Fred(const Fred& f) : p_(new Wilma(*f.p_)) { } //question
~Fred() { delete p_; }
Fred& operator= (const Fred& f)
{
// Bad code: Doesn't handle self-assignment!
delete p_; // Line #1
p_ = new Wilma(*f.p_); // Line #2
return *this;
}
private:
Wilma* p_;
};
上面例子中,不明白在copy constructor (//question 那行)
为什么要用Wilma(*f.p_),这个*f的用法是什么
class Fred {
public:
Fred() : p_(new Wilma()) { }
Fred(const Fred& f) : p_(new Wilma(*f.p_)) { } //question
~Fred() { delete p_; }
Fred& operator= (const Fred& f)
{
// Bad code: Doesn't handle self-assignment!
delete p_; // Line #1
p_ = new Wilma(*f.p_); // Line #2
return *this;
}
private:
Wilma* p_;
};
上面例子中,不明白在copy constructor (//question 那行)
为什么要用Wilma(*f.p_),这个*f的用法是什么