C++ öğrenmek için yeterli mi?

C++ 'da kullandığın fonksiyonları header dosyasında isim ve yöntem olarak tanımlaman gerekiyor. Derlendiğinde hepsini tek bir cpp dosyası olarak görüyor ve üst satırdan en alt satıra doğru derleyerek çalıştırıyor. Mesela kullanacağın fonksiyon tanımı altta kalıyorsa C++ o fonksiyonu görmüyor. Header dosyaları "buraya bu fonksiyon gelecek, merak etme ben içerde bunu tanımladım" diye derleyiciyi uyarıyor.
C#'ta ise fonksiyonu scope un herhangi bir yerinde tanımlayabilirsin, sıkıntı olmayacaktır.
 
C++'ta da, C# gibi class scope'unda tanımlarsan, hangisinin önce geldiğinden bağımsız olarak çalışacak. Forward declaration yapmıyoruz her zaman.

Eğer global scope'ta böyle yaparsak, evet, hata;
C++:
auto bar() -> void {
    foo(); // error: 'foo' was not declared in this scope.
}

auto foo() -> void {
    std::cout << "foo" << std::endl;
}

Class'ta ise sorun yaratmayacak.
C++:
class baz {
   public:
   auto bar() -> void {
       foo(); // ok, output: foo
   }
   auto foo() -> void {
       std::cout << "foo" << std::endl;
   }
};
 
Biraz geç cevap verdim. Dediklerinizden biraz anladım .
C++'ı seçmenizin özel bir sebebi var mı? Eğer öğrenecekseniz bu siteyi öneririm.
Dediğim gibi Programlarlar ve projeler oyunlar vs.
Bu mesajı çok az anladım. Kelime bilmiyorum hocam header dosyası ve scope nedir?

Hepinizi cevaplayamıyorum ama bilgileriniz ve de zaman ayırdığınız için teşekkürler.
 
Yazılıma bir dil öğrenme amacıyla başlama:
 
Başta İngilizce ve mümkünse temel lise matematiği kısmını halledin, daha sonra da algoritmayı öğrenip bol bol algoritma çalışması yapın. Daha sonra da bence Harvard CS50x ile başlayın. Bunları yaptıktan sonra hangi dil ile başlayıp ne öğrendiğiniz fark etmiyor, HTML ve CSS ile de Py ile de C ile de başlayan mevcut.
 
Son düzenleyen: Moderatör:
İfadeler: 900
Bu siteyi kullanmak için çerezler gereklidir. Siteyi kullanmaya devam etmek için çerezleri kabul etmelisiniz. Daha Fazlasını Öğren.…