İçindekiler:
- İfadeler
- Sabit deyimler
- [] [const] type var [= ifade]; // değişken [] [const] tür dizisi [size] [= {list}]; // dizi [const] type nesne [(argüman listesi)]; // object [const] tür nesne [= {argument list}]; // alternatif [const] type * [const] ptr [= işaretçi ifadesi]; // işaretçi türü & refName = nesne; // başvuru türü fnName ([bağımsız değişken listesi]); // function
Video: HTML IS a Programming Language (Imperative vs Declarative) - Computerphile 2024
Cümleciler için C ++'nın parçası Cheat Sheet
C ++ programında bir hesaplama yapmak için bir ifadeye ihtiyacınız var. Bir ifade, hem bir değeri hem de bir türe sahip bir deyimdir. C ++ programında, bir bildirim, bir değişkeni tanımlayan bir ifade veya bir sayı veya karakter gibi bir tür değer için bir "tutma tankı" dır.
İfadeler
İfadeler aşağıdaki biçimlerden birini alır:
objName // basit bir nesne işleci ifadesi için // tekli işleçler için expr1 işleci ifade2 // ikili işleçler için expr1? expr2: expr3 // üçlü operatör funcName için ([argüman listesi]); // işlev çağrıları için
Sabit deyimler
Yazı karakteri sabit bir ifade biçimidir. Çeşitli literal türleri aşağıdaki tabloda tanımlanmıştır.
Örnek | Tür |
---|---|
1 | int |
1L | uzun int |
1LL | uzun uzun int |
1. 0 | çift |
1. char | char |
karakteri (otomatik olarak boş karakter ile sonlandırılır) | L "bir dize" |
wchar_t * UTF-8 karakterli bir UTF-8 dizesidir: u2018 " | char8_t * |
u" UTF-16 karakterli bir UTF-16 dizgesi: u2018 " | char16_t * u8" |
U "UTF-32 karakterli bir UTF-32 dizgesidir: | U00002018" |
char32_t * | doğru, yanlış |
bool
0b101 |
binary (C ++ 2014 standart) |
|
Declarations |
Bildirimler hem intrinsic hem de kullanıcı tanımlı türleri kullanır. Intrinsic türleri şunlardır: | [] char [] wchar_t [] [] int float [long] double bool |
[] [const] type var [= ifade]; // değişken [] [const] tür dizisi [size] [= {list}]; // dizi [const] type nesne [(argüman listesi)]; // object [const] tür nesne [= {argument list}]; // alternatif [const] type * [const] ptr [= işaretçi ifadesi]; // işaretçi türü & refName = nesne; // başvuru türü fnName ([bağımsız değişken listesi]); // function
C ++ değişkenin kendisinin türünü kendisi belirleyebiliyorsa otomatik anahtar sözcüğü kullanılabilir:
otomatik var = 1L; // var türü long int
Anahtar kelime decltype bir ifadenin türünü çıkarır. Bu tür daha sonra, bir tür adı kullanıldığında her yerde kullanılabilir. Örneğin, aşağıdaki örnek, varolan bir değişkenle aynı türde ikinci bir değişkeni bildirmek için decltype'yi kullanır:
decltype (var1) var2; // var2'nin türü var1 ile aynıdır
Bir işlev tanımının biçimi şu şekildedir:// basit işlev [] türünde fnName (bağımsız değişken listesi) {…} // sınıfın dışında tanımlanan üye işlev [satır içi] sınıf Sınıf:: func (argüman listesi) [const] {…} // kurucu / yıkıcılar sınıfın dışında tanımlanabilir Class:: Class ([argüman listesi]) {…} Sınıf:: ~ Sınıf () {… } // constructors / destructor, tanımın yerine silinebilir veya öntanımlı olabilir Class:: Class ([argument list]) =; Sınıf:: ~ Sınıf () =;
Aşırı yüklenmiş bir operatör bir işlev tanımına benziyor.Çoğu aşırı yüklenmiş operatörler üye olarak veya basit işlevler olarak yazılabilir. Bir üye işlev olarak yazıldığında *, işlecin varsayıldığı ilk bağımsız değişkendir:
MyClass & operatör + (const MyClass & m1, const MyClass & m2); // basit MyClass & MyClass:: operator + (const MyClass & m2); // üye;
Kullanıcılar ayrıca kendi sınıflarını veya yapı anahtarlarını kullanarak tanımlayabilirler:
ClassName [: [sanal] [public] BaseClass] {: // Oluşturucu ClassName ([arg listesi]) ClassName () [=;] // yıkıcı [sanal] ~ SınıfAdı () <{…} | [=; > // genel veri üyeleri type dataMemberName [= ilkDeğeri]; // kamusal üye işlevleri type üye işlevAdı ([arg listesi]) [{…}] // const üye işlev türü memberFunctionName ([arg listesi]) const [{…}] // sanal üye işlevleri sanal türü memberFunctionName ([arg listesi]) [{…}]; // saf sanal üye işlevleri sanal türü memberFunctionName ([arg listesi]) = 0; // temel sınıfın işlev türünü geçersiz kılmak zorunda olan işlev memberFunctionName ([arg listesi]) geçersiz kılma; // bir alt sınıf türü içinde geçersiz kılınamayan bir işlev memberFunctionName ([arg listesi]) final;};
Buna ek olarak, tek bir bağımsız değişkeni olan bir kurucu, bir türe bir örtük dönüşümde kullanılmayacağı açık bir işaret olarak işaretlenebilir. Yapılandırıcıyı varsayılan olarak işaretlemek "varsayılan C ++ yapıcı tanımını kullan" anlamına gelir. Yapılandırıcıyı delete olarak işaretleyerek, varsayılan C ++ yapıcı tanımını kaldırır.C ++, iki tür numaralandırılmış türde destekler. Aşağıdaki eski numaralandırma türü yeni bir tür oluşturmaz:
enum STATE {DC, // 0 ALABAMA alır, // 1 ALASKA alır, // 2 ARKANSAS alır, // 3 alır // … vb.}; int n = ALASKA; // ALASKA türü int
Varsayılan olarak tek bir girdi int türüdür ancak bu C ++ 2011 standardında değiştirilebilir:
enum ALPHABET: char {A = 'a', // 'a' B, // 'b' C alır, // 'c' alır // … vb.}; karakter c = A; // A char türündür C ++ 2011, yeni bir tür oluşturan ikinci bir biçime izin verir:
// aşağıdaki numaralandırma yeni bir tür tanımlar STATE enum sınıfı STATE {DC, // 0 alır ALABAMA, // 1 ALASKA alır, // 2 ARKANSAS alır, // 3 alır // … ve bunun gibi}; DEVLET s = DEVLET:: ALASKA; // şimdi DEVLET yeni bir tiptir // aşağıdaki temel türü enum sınıfını kullanır ALPHABET: char {A = 'a', //'a 'B alır, // alır' b 'C, // alır' c ' //… ve bunun gibi}; ALFABET c = ALFABET:: A; // ALPHABET
türündür. Şablon bildirimlerinde biraz farklı bir format vardır:
// T tipi programlayıcı tarafından şablon tipi FunctionName ([arg listesi]) tarafından sağlanır template class ClassName {{…}};