constexpr değişken
- C++ kursu
- Uzman
- Ders 7/47
- 5 dk
constexpr değişken ile derleme zamanı sabit öğrenirsin.
constexpr değişken
constexpr anahtar kelimesi bir değişkenin değerinin derleme zamanında hesaplanabileceğini bildirir. Örnek: constexpr int monthsPerYear = 12;. Derleyici bu değeri derleme zamanında bilir; çalıştırılabilir dosyaya hazır bir sabit olarak gömer.
Bu sabitleri başka constexpr ifadelerde kullanabilirsin: constexpr int monthsInDecade = monthsPerYear * 10;. İki değer de derleme zamanında bilindiği için çarpım da derleme zamanında hesaplanır ve 120 sonucu çalışma zamanında hazır bulunur.
constexpr ile const farkı
const bir değişkenin sonradan değişmeyeceğini söyler; ancak değeri çalışma zamanında da hesaplanabilir: const int n = getValue(); geçerlidir.
constexpr daha katıdır: değer mutlaka derleme zamanında hesaplanabilir olmalıdır. Bu yüzden constexpr int n = getValue(); ancak getValue constexpr ise derlenir. constexpr, derleme zamanı sabiti gerektiren yerlerde (dizi boyutu, şablon parametresi) kullanılır.
Uygulama constexpr sabitleri tanımla
constexpr int monthsPerYear = 12; ve constexpr int monthsInDecade = monthsPerYear * 10; tanımla. main içinde std::cout << monthsInDecade; yaz.
Başlangıç kodu
#include <iostream>
// constexpr sabitleri buraya tanımla
int main() {
// Sonucu yazdır
return 0;
}Örnek çözüm
#include <iostream>
constexpr int monthsPerYear = 12;
constexpr int monthsInDecade = monthsPerYear * 10;
int main() {
std::cout << monthsInDecade;
return 0;
}Beklenen çıktı
120
Soru ve cevaplar
Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.
1 constexpr int x = 5; ifadesi ne sağlar?
constexpr int x = 5;- Sadece float için kullanılır
- Yalnızca çalışma zamanında hesaplanır
- Değişken sonradan değiştirilebilir
- Değer derleme zamanında bilinir Doğru cevap
Açıklama: constexpr, derleme zamanında bilinen bir sabit tanımlar.
2 constexpr sabitini tamamla
constexpr int monthsPerYear = ____;
constexpr int monthsPerYear = 12;
Açıklama: constexpr int monthsPerYear = 12; yazılır; yılın ay sayısı 12'dir.
3 Bildirimi özelliğine eşle
| Kavram | Anlamı |
|---|---|
constexpr int x = 5; |
Derleme zamanı sabit |
const int y = getValue(); |
Çalışma zamanı sabiti |
constexpr int z = x * 2; |
Hesaplanabilir sabit |
int w = 7; |
Değişebilir değişken |