Ben C++ 03 tarzında gayet iyi çalışan bir çift kurucu var. Kurucular biriDelegating constructors: bir temsilci için bir başlatıcı tek başına görünmelidir
class Window : public Rectangle
{
public:
Window() : win(new RawWindow(*this))
{
refresh();
}
Window(Rectangle _rect) : Rectangle(_rect), win(new RawWindow(*this))
{
refresh();
}
...
biraz bu kadar neaten yeni C++ 11 delegating ctor işlevselliğini nasıl kullanılacağını anlamaya çalışıyorum ... Bir üst sınıf (veya temel sınıf) yapıcısını çağırır. Ancak, aşağıdaki kod aşağıdaki derleyici hata ...
class Window : public Rectangle
{
public:
Window() : win(new RawWindow(*this))
{
refresh();
}
Window(Rectangle _rect) : Rectangle(_rect), Window(){}
bu çevrede bir yolu var mı ??verir "yalnız görünmesi gereken bir delegating yapıcısı için bir başlatıcı" ...
"Bu örnekte kurucuları devretmekten kaçının" - Kodunuz çalışır gibi görünüyor (teşekkürler +1), bu öneriyi neden yaptığınız konusunda genişletebilir misiniz? – learnvst
@learnvst Bir fantezi varsayılan argümanı olarak davranıyorlar. Daha okunaklı olması için varsayılan argümanları veya orijinal kodunuzu buluyorum. – Pubby
Evet, “Pencere (Dikdörtgen())” şey biraz garip görünüyor. Nereden geldiğini görüyorum. – learnvst