C++ "expected unqualified-ID before '<<' token" hatası

Ne anlatıyorsun moruk sen? Adam HelloWorld yazıyor. Belli ki yeni başlamış kodlama öğrenmeye. Gelmişsiniz burda globalde namespace tanımlamak hata diyorsunuz. Hadi ya ciddi misiniz siz :D. Bir de abicim falan demişsin. Abicin yesin seni :D.
Bu tarz şeyler alışkanlık edilir. Namespaceleri böyle yazmaya alışması, global namespace tanımlamaya alışmasından iyidir. Altı üstü std:: yazmak sana 1 saniye bile kaybettirmez. Ayrıca hata demiyorum. Bad practice diyorum. Hata ve kötü alışkanlık arasındaki farkı da öğrenmen lazım.

Okulumdaki C ve C++ derslerini veren hocam tahtada bile yazarken ısrarla std yazardı. Bizde verdiği ödevlerde eğer using namespace std; kullanırsak puan kırardı ödevden. Sınavda da aynı şekilde. Sınavda kağıda yazmamıza rağmen size 2 saniye kaybettirir ve ben o kaybedeceğiniz 2 saniyeyi hesaplayarak sınav hazırladım der puan kırardı global tanımladığımızda. Bunun arkasındaki sebep bizim using namespace xxx; alışkanlığı edinmemizi engellemek. Eğer namespace çok uzunsa şunu yapabiliyorsun; namespace kisaad = asiri_uzun_namespace_adi;

C++:
#include <iostream>

//Bu sekilde nested namespace bir C++ 17 özelliği
namespace asiri_uzun_namespace_adi::asiri_uzun_namespace_uyesi {
    int uye_fonksiyon(int a, int b) {
        return a + b;
    }
}

//Cpp14 ve önceki sürümler için
namespace c14_asiri_uzun_namespace_adi {
    namespace asiri_uzun_namespace_uyesi {
        int uye_fonksiyon(int a, int b) {
            return a + b;
        }
    }
}

//namespace alias
namespace kisaad = asiri_uzun_namespace_adi::asiri_uzun_namespace_uyesi;
//cpp14 namespace alias
namespace c14kisaad = c14_asiri_uzun_namespace_adi::asiri_uzun_namespace_uyesi;

int main(int argc, char *argv[]) {
    std::cout << kisaad::uye_fonksiyon(3, 5);
    return 0;
}
 
Son düzenleme:

Yeni konular

Geri
Yukarı