-2

引用http://www.parashift.com/c++-faq-lite/ref-count-simple.html

class Fred {
public:
  static FredPtr create();              // Defined below class FredPtr {...};
  static FredPtr create(int i, int j);  // Defined below class FredPtr {...};
  ...
private:
  Fred();
  Fred(int i, int j);
  ...
};

class FredPtr { /* ... */ };

inline FredPtr Fred::create()             { return new Fred(); }
inline FredPtr Fred::create(int i, int j) { return new Fred(i,j); }

new Fred() が最後の 2 行のコードで FredPtr を返すにはどうすればよいでしょうか? 理解できない。

4

2 に答える 2

0

new Fred();は a を返しますFred*FredPtr おそらくとして宣言された変換コンストラクターがありFredPtr(Fred*)ます。これによりFredPtr、 から暗黙的にオブジェクトを作成できますFred*

于 2013-08-12T04:18:52.217 に答える