2012-11-03 10 views
18

C++ ve COM'u kitaplardan öğreniyorum. IDE MS Visual Studio 2012'de yeni boş C++ projesi oluşturdum ve varolan bazı dosyaları ekledim. Benim CPP dosyası #include<iostream> satır içerir, ancak editörü böyle mesajlar var:#include <iostream> var, ancak bir hata alıyorum: "cout" tanımlayıcısı tanımsız. Niye ya?

Error: identifier "cout" is undefined

Error: identifier "endl" is undefined

Ekran: Neden olur

enter image description here

? kod beri,

using std::cout; 
using std::endl; 

cout << .... << endl; 

Sana başlıklarındaki bu using direktifleri önlemek gerektiğini eklemek gerekir: Bir using direktifini kullanabilirsiniz Alternatif

std::cout << .... << std::endl;; 

:

+1

deneyin std :: cout ve std bilmediği kod – srbhkmr

+1

deneyin kopyala yapıştır 'kullanarak ad std;'. Tatlı :) – sehe

+2

Taze ve bozulmamış zihin için :: endl – jrok

cevap

26

Sen std:: ad belirtmeniz gerekir Bunların da dahil olması, küresel isim alanına getirilen sembollere de sahip olacaktır. İşte

#include <iostream> 

inline void foo() 
{ 
    using std::cout; 
    using std::endl; 
    cout << "Hello world" << endl; 
} 

örneğin

için, küçük kapsamları için direktifler kullanarak sınırla, using direktif sadece foo() kapsamı için de geçerlidir.

+0

Teşekkür ederiz! Bunu unuttum. :) Şimdi her şey yolunda. –

4

cout std ad alanında, kodunuzda std::cout kullanmalısınız. Ve başlık dosyanızda using namespace std; eklemeyeceksiniz, kodunuzu std ad alanı ile karıştırmak kötü, özellikle de başlık dosyasına eklemeyin.

+1

http://en.wikipedia.org/wiki/Thou_Shalt_Not –

3

Sen #include <iostream> sonra başında bu ekleyebilirsiniz:

using namespace std;