28 Ocak 2019 Pazartesi

Zero Initialization

Giriş
Açıklaması şöyle.
One of the founding principals of c++ is to not force developers to pay for what they don't use. If you write something like int x; x = 1; then you shouldn't have to pay for the zero initialization of x, even if that cost happens to be very tiny
Global Variable
Global değişkeni kendisiyle ilklendirmek zero initialization'a sebep olur.

Örnek
Şöyle yaparız
int i = i;

int main() { 
 int a = a;
 return 0;
} 
Compiler Generated Default Constructor
Sınıfa default constructor yazarsak yani şöyle yaparsak
MyTest() = default;
sınıfın alanları zero initialization'a tabi tutulur.

Örnek
Şöyle yaparız.
struct foo {
  foo() = default;
  int a;
};


int main() {
  foo a{};
  std::cout << a.a;
}
Çıktı olarak şunu alırız
0

Hiç yorum yok:

Yorum Gönder