Kodlarda çok sık kullandığımız switch deyimine ilişkin tüm kuralları biliyor muyuz? Bu yazıda switch deyimine ilişkin daha az bilinen kuralları ele alacağız. Hadi başlayalım…
sequence point (yan etki noktası)
C programcılarının iyi bilmesi gereken konulardan biri “sequence point”. Ben bu terimi olduğu gibi dilimize çevirmek yerine kendi uydurduğum “yan etki noktası” terimini kullanıyorum.
switch deyimi
switch deyimi bir tamsayı ifadesinin farklı değerleri için, programın akışının farklı noktalara yönlendirilmesini, böylece farklı işlerin yapılmasını sağlar. switch deyimi, else if merdivenine (else
ifade değer kategorileri (expression value categories) – 1
C++11 öncesi bir ifade (expression) ya sol taraf değeri (lvalue) ya da sağ taraf değeri (rvalue) olabiliyordu. C++11 ile birlikte taşıma semantiğinin (move semantics)
auto geri dönüş değeri türü (auto return type)
C++11‘de işlevlerin geri dönüş değerlerinin türünün ne olduğu konusunda derleyiciler belirli durumlarda çıkarım yapabiliyordu. C++14 standartları ile gelen yeni özellikleri anlamadan önce C++11‘de durum
decltype işleci – 1
Türden bağımsız (generic) olarak yazılan kodlarda, bazı durumlarda bir ifadenin türünün derleme zamanında derleyici tarafından yapılacak bir çıkarımla anlaşılması gerekiyor. Aşağıdaki örneğe bakalım:
1 2 3 4 5 6 |
template<typename T, typename U> void func(T x, U y) { auto z = x * y; //... } |
auto belirtecini
virgül işleci (comma operator)
Virgül iki terimli (operand) ara ek (infix) konumlu bir işleçtir.
1 |
exp1, exp2 |
gibi bir ifadede exp1 virgül işlecinin sol terimi exp2 ise virgül işlecinin sağ
çok boyutlu diziler
C dilinde iki ya da daha çok boyuta sahip diziler tanımlanabilir:
1 |
double a[5][10]; |
a iki boyutlu bir dizi. Aşağıda ismi ar olan üç boyutlu bir dizi tanımlanıyor:
1 |
int ar[4][5][10]; |
ilk değer vermeli if deyimi (if statement with initializer)
Derleyiciler C++17 ile gelecek yeni özellikleri artık yavaş yavaş gerçekleştirmeye başladılar. C++11, C++14 derken C++17 de giderek daha fazla kodlama hayatımıza girecek gibi görünüyor.
üye işlev referans niteleyicileri
C++11 ile gelen araçlardan biri üye işlev referans niteleyicileri (member functions reference qualifiers). Sentaksa değinmeden önce amacı anlamaya çalışalım. Normal olarak bir sınıfın üye