26 Şubat 2015 Perşembe

Defaulted Functions

Şu faydaları vardır
1. Erişimi değiştirmek için kullanılır. Derleyici tarafından üretilen tüm metodlar public'tir. Protected veya private yapmak istersek kendimizin yazması gerekir. Defaulted olarak tanımlarsak bizim belirlediğimiz erişim seviyesi ile metodun derleyici tarafından üretilmesini sağlarız.

2. Derleyiciyi metodu üretmeye zorlamak için kullanırız. Örneğin copy constructor metodunu biz yazdıysak derleyici default constructor metodunu üretmez. Üretmeye zorlamak için kullanabiliriz.

3. Derleyici tarafından üretilmiş destructor metodunu virtual yapmak için kullanırız.

4. Copy constructor metodunun imzasını değiştirmek için kullanırız. Örneğin const reference kullanmak yerine non-const reference üretmeye zorlayabiliriz.

Defaulted Functions Şunlar İçin Yazılabilir
1. Default Move Constructor

Bazı Defaulted Functions Auto Tip Dönemez
Örnek
Şu kodlar yanlış
auto & operator =(const example &) = default;
auto & operator =(example &&) = default;
Bazı Defaulted Functions Auto Tip Dönebilir
Örnek
Şu kod doğru
#include <compare>

struct X
{
    auto operator<=>(const X&) const = default;
};




Hiç yorum yok:

Yorum Gönder