Saya belajar C++ dan COM melalui buku-buku.
Di IDE MS Visual Studio 2012 saya telah membuat proyek C++ baru yang kosong, dan menambahkan beberapa file yang sudah ada ke dalamnya. File CPP saya berisi baris #include<iostream>
, tetapi di editor saya mendapat pesan seperti itu:
Kesalahan: identifier "cout" tidak terdefinisi
end
Kesalahan: pengenal "endl" tidak terdefinisi
Layar:
Mengapa hal itu terjadi?
Anda perlu menentukan namespace std::
:
std::cout << .... << std::endl;;
Sebagai alternatif, Anda dapat menggunakan arahan using
:
using std::cout;
using std::endl;
cout << .... << endl;
Saya harus menambahkan bahwa Anda harus menghindari direktif menggunakan
ini di header, karena kode yang menyertakan ini juga akan memiliki simbol yang dibawa ke namespace global. Batasi penggunaan direktif untuk cakupan kecil, misalnya
#include <iostream>
inline void foo()
{
using std::cout;
using std::endl;
cout << "Hello world" << endl;
}
Di sini, arahan menggunakan
hanya berlaku untuk lingkup foo()
.
cout
berada di namespace std, anda harus menggunakan std::cout
dalam kode anda.
Dan anda tidak boleh menambahkan menggunakan namespace std;
di file header anda, sangat tidak baik untuk mencampurkan kode anda dengan namespace std, terutama jangan menambahkannya di file header.