Tam Sürümünü Görmek İçin : using namespace std;
std dedinizde,benim bir sorum olacak.
using namespace std;
ne işe yarıyor, anlayamadım.
Bu komutu silince program çalışmıyor.
KamilORS
04/12/2007, 17:27
using namespace std;
silersen yukarda @acehreli dediği gibi
std::cout<<"blabla";
std::cin>>blabala;
şeklinde kullanman gerek fonksiyonları...
isim uzayı denir genellikle. google da araştırırsan ayrıntılı bilgi bulabilirsin.
using std::cout;
using std::cin;
seklinde herseyi yazmalisin. ben topunu kullanicam manasina gelir using namespace std ve bir satirda halledersin.
çoğunlukla using namespace std; kullanırız.Ama eğer büyük bir proje yapıyor ve performans ihtiyacı varsa std:: kullanın ki gereksiz kütüphaneleri dahil etmeyin.
myavuzselim
09/12/2007, 20:14
çoğunlukla using namespace std; kullanırız.Ama eğer büyük bir proje yapıyor ve performans ihtiyacı varsa std:: kullanın ki gereksiz kütüphaneleri dahil etmeyin.
Performansla ilgisi oldugunu sanmiyorum. Namespace'larin isi sadece isim cakismasini engellemek bildigim kadariyla.
quasimodo
09/12/2007, 21:26
C deki global isim alani kirliliginden kurtulmak icin C++ ta namespace
kavrami ortaya cikmistir. C++ in tum standart kutuphane bilesenleri
std isim uzayinda tanimlanmistir (bildirilmistir).
Bir isim uzayi elemanina erismek icin, eleman isim uzayinin adi ve
kapsam cozunurluk operatoru ile nitelendirilmelidir.
Orn :
std::cin;
std::cout;
std::strcpy();
Bu sekilde nitelemeyi her defasinda yazmak birhayli zahmetli
oldugundan using veya using namespace bildirimleri kullanilir.
using std::cin;
using std::cout;
ile
using namespace std;
arasinda cok buyuk fark vardir.
using bildirimi ile bildirilen isim, bildirimin yapildigi bilinirlik alanina
eklenir.
namespace M
{
int a, b, c;
}
int main()
{
using M::a; /* Bu bildirimden sonra a artik main()
blogu icinde tanimlanmis gibi ele alinir */
int a; /* Bu yuzden bu sekilde tanimlama derleme hatasi olarak
ele alinir. Cunku C++ ta bir bilinirlik alaninda ayni isimli
iki degisken tanimlanamaz. */
// Tam terside boyledir ...
int c;
using M::c; // Hata : redeclaration of int 'c'
}
using namespace komutu ise, isim uzayi elemanlarinin, sanki bu
elemanlar isim uzayinin taniminin bulundugu yerde, ancak isim
alaninin disinda tanimlanmis gibi gozukmesini saglar. Yani
namespace M
{
int a, b, c;
}
int main()
{
using namespace M;
a = 10; // M::a;
int c; // tanimlama tamamen gecerli
c = 5; // atama yapilan c yerel c;
M::c = 8; // isim uzayi icindeki c;
}
Anladım, std kütüphane fonksiyonlarını programa dahil etmek için kullanılıyor
peki
namespace M
{
int a, b, c;
}
}
kodunda kullandığımız namespace anladığım kadarıyla grup oluşturuyor.
Bu basic teki "type" nin karşılığımı?:utangac:
acehreli
10/12/2007, 10:21
-aga-, daha once soylendigi gibi yalnizca bazi "adlarin" kolayca kullanilmasini sagliyor. Yani derleyiciye soyle diyoruz: "lutfen beni ugrastirma, her seferinde std::cout yazmak zorunda kalmayayim; ben cout yazinca sen daha once 'using' dedigim isim alanlarini tara ve orada buldugun cout'u kullan iste."
Programa fonksiyon eklemekle ilgisi yok. "Leb" demeden leblebiyi anlamak gibi:
namespace Leb
{
int lebi;
}
using namespace Leb;
lebi = 42; // Burada derleyici Leb::lebi anliyor :D
Ali
Anladım.Sağolun...:ginginn:
quasimodo
10/12/2007, 14:25
Programa fonksiyon eklemekle ilgisi yok. "Leb" demeden leblebiyi anlamak gibi:
namespace Leb
{
int lebi;
}
using namespace Leb;
lebi = 42; // Burada derleyici Leb::lebi anliyor :D
Ali
Superdi .... :D
al benden de okadar yaw :D leb::lebi:cool:
Forum Yazılımı : vBulletin v3.6.8, Copyright ©2000-2008, Jelsoft Enterprises Ltd.