2017-06-09 7 views
1

を意味しない何こんにちは、私はこの方法C++ {}それは

surface::surface(const surface& s) : 
    ref{s.ref->clone()} 
{} 

は{}このメソッドの後に何を意味していることがありますか?可能であれば、これらをいくつかの例で説明してください。

+1

これはメソッド構造体を配置する場所です。このメソッドで必要なものがあります。 – tilz0R

+0

しかし、もし私が何かを置かないなら、{}それはどのようにwokrになりますか? – gamernoob

+0

あなたのメソッドは* nothing *を行います。 'ref {s.ref-> clone()}'のためにあなたは誤解を招いています。これは、メソッドの拡張であるからです。この部分はこのメソッドの実際の構造体ではありません – tilz0R

答えて

2

これは通常の方法ではありません。空のボディを持つコンストラクタです。ここでのキーは、コロン(:)の後に起こるものです:これらはメンバ変数の構築方法を示すmem-initializersです。

+0

それで、私はそれを継承する別の構造体になることができる2番目のコンストラクタに私たちを送りますか? – gamernoob

+0

@gamernoob確かに。 refがメンバではなく、基本クラスであれば、基本クラスの構築方法がわかります。すべてのmem-initializerは、本体が実行される前に呼び出されます(本体があなたの例のように空でない場合)。 – Christophe

+0

これがどのように機能するか教えてください。https://github.com/supremacey/cpp-hans/blob/master/lab/lab11/code/surface.h – gamernoob