|
|
|
|
|
|
p**v 发帖数: 853 | 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的用法是什么 | c*****g 发帖数: 119 | 2
Wilma's copy ctor with parameter of const Wilma&
Accessibility control with class, not object
Explained in the previous answer
initialization
【在 p**v 的大作中提到】 : 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
|
|
|
|
|
|