using
- C++ kursu
- Başlangıç
- Ders 107/116
- 4 dk
using ile namespace içe aktarmayı öğrenirsin.
using ile içe aktarma
Her çağrıda ad::öğe yazmak bazen uzundur. using direktifi bir ad alanındaki tüm isimleri tek seferde kullanılabilir kılar.
using namespace math;
int n = add(2, 3); // math:: gerekmezBurada using namespace math satırından sonra add doğrudan çağrılabilir. Bu, küçük programlarda pratik olabilir; ancak büyük projelerde ad çakışmalarına yol açabileceği için dikkatli kullanılır.
using'in riskleri
using namespace kullanışlı olsa da riskleri vardır. İki ad alanı aynı isimli işlev içeriyorsa hangisinin çağrılacağı belirsizleşir; bu da derleme hatasına yol açar.
Bu yüzden büyük projelerde genellikle using namespace kullanmaktan kaçınılır; bunun yerine std::cout gibi tam adlar tercih edilir. Başlık dosyalarında using yazmak ise neredeyse her zaman yanlış bir uygulamadır; çünkü bu dosyayı içeren herkes ad alanını otomatik olarak içe aktarmış olur.
Uygulama using ile add'i çağır
namespace math { int add(int a, int b) { return a + b; } } tanımla. main içinde önce using namespace math; yaz, sonra int n = add(4, 5); ile çağır. cout << n << endl; ile yazdır.
Başlangıç kodu
#include <iostream>
using namespace std;
// math ad alanını tanımla
int main() {
// using ile içe aktar, add'i çağır ve yazdır
return 0;
}Örnek çözüm
#include <iostream>
using namespace std;
namespace math {
int add(int a, int b) {
return a + b;
}
}
int main() {
using namespace math;
int n = add(4, 5);
cout << n << endl;
return 0;
}Beklenen çıktı
9
Soru ve cevaplar
Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.
1 Boşluğu doldur: using direktifi
using ____ math;
int n = add(2, 3);
using namespace math;
int n = add(2, 3);
Açıklama: using namespace math ad alanını içe aktarır.
2 using namespace sonrası add(2,3) nasıl çağrılır?
- math::add(2,3)
- namespace::add(2,3)
- math.add(2,3)
- add(2,3) Doğru cevap
Açıklama: using sonrası doğrudan add(2,3) yazılır.
3 İfadeyi sonuçuyla eşleştir
| Kavram | Anlamı |
|---|---|
using namespace math |
içe aktarır |
math::add |
tam ad ile çağrı |
using namespace std |
std'yi içe aktarır |