Neler yeni
Metin2 Support

Metin2 Dünyasına Hoş Geldiniz! Yeni bir maceraya adım atın ve topluluğumuza katılın. Sorularınızı sormak, deneyimlerinizi paylaşmak ve diğer oyuncularla iletişim kurmak için hemen kaydolun. Kayıt olun, etkileşimde bulunun ve Metin2 dünyasındaki serüveninizi daha da özel hale getirin. Birlikte oynamak için sabırsızlanıyoruz!

C++ Öğrenmeye Nereden Başlanmalı?

ciow3r

New member
Katılım
5 Haz 2025
Mesajlar
21
Tepkime puanı
10
Puanları
3

C++ Öğrenmeye Nereden Başlanmalı?​

C++ öğrenmeye başlarken en önemli konu, doğrudan oyun motoru, grafik programlama veya büyük projelere atlamamaktır. C++ oldukça güçlü bir dildir ancak aynı zamanda veri tipleri, bellek yönetimi, pointer, referans, sınıflar ve derleme süreci gibi birçok temel konuyu anlamayı gerektirir.

Yeni başlayan biri için en doğru yaklaşım:

Önce temel programlama mantığı → Sonra C++ sözdizimi → Ardından nesne yönelimli programlama → Daha sonra STL ve proje geliştirme

şeklinde ilerlemektir.

C++ Nedir?​

C++, genel amaçlı, derlenen ve yüksek performanslı bir programlama dilidir.

Özellikle:

  • Oyun motorları
  • Masaüstü yazılımlar
  • Sistem programlama
  • Gömülü sistemler
  • Finans uygulamaları
  • Grafik motorları
  • Performans gerektiren yazılımlar
gibi alanlarda yaygın olarak kullanılır.

C++ hem düşük seviyeli bellek kontrolü hem de yüksek seviyeli programlama özellikleri sunar.

C++ Öğrenmek Zor mu?​

Başlangıçta Python veya JavaScript gibi dillere göre daha zor gelebilir.

Çünkü erken aşamada:

  • Veri tipleri
  • Pointer
  • Referans
  • Bellek
  • Derleyici
  • Header dosyaları
gibi kavramlarla karşılaşırsınız.

Ancak bu zorluk aynı zamanda büyük avantajdır.

C++ öğrenirken bilgisayarın ve programların nasıl çalıştığını daha iyi anlarsınız.

1767432184

Önce C Öğrenmek Gerekir mi?​

Hayır.

C++ öğrenmek için önce C bilmek zorunlu değildir.

Hatta hedefiniz doğrudan:

  • Oyun geliştirme
  • Unreal Engine
  • Modern masaüstü yazılım
  • C++ uygulamaları
ise doğrudan modern C++ öğrenmek daha mantıklı olabilir.

C bilgisi fayda sağlar ancak zorunlu değildir.

Hangi C++ Sürümü Öğrenilmeli?​

Eski eğitimlerde:

  • C++98
  • C++03
tarzı eski yöntemlerle karşılaşabilirsiniz.

Yeni başlayan biri mümkün olduğunca modern C++ yaklaşımını öğrenmelidir.

Özellikle:

  • C++17
  • C++20
  • C++23
özelliklerini destekleyen güncel bir derleyici kullanmak daha mantıklıdır.

Başlangıç aşamasında bütün modern özellikleri öğrenmeniz gerekmez.

Önemli olan eski ve gereksiz yöntemlere bağımlı kalmamaktır.

Hangi Programla C++ Yazılır?​

Yeni başlayanlar için birkaç iyi seçenek vardır.

Visual Studio​

Windows kullanıcıları için en rahat seçeneklerden biridir.

Kurulum sırasında:

Desktop development with C++

bileşeni seçilebilir.

Visual Studio içerisinde:

  • Derleyici
  • Debugger
  • Kod editörü
  • Proje sistemi
hazır gelir.

Visual Studio Code​

Daha hafiftir.

Ancak:

  • C++ eklentisi
  • Compiler
  • Build araçları
ayrıca kurulmalıdır.

Bu nedenle tamamen yeni başlayan biri için Visual Studio daha kolay olabilir.

CLion​

Profesyonel ve güçlü bir IDE'dir.

Ancak ücretli olabilir.

Compiler Nedir?​

C++ kodu doğrudan işlemci tarafından çalıştırılmaz.

Önce derleyici yani compiler tarafından makine koduna çevrilir.

Yaygın C++ derleyicileri:

  • MSVC
  • GCC
  • Clang
olarak sıralanabilir.

Örneğin Windows'ta Visual Studio genellikle MSVC kullanır.

İlk C++ Programı​

Klasik başlangıç örneği:

#include <iostream>

int main()
{
std::cout << "Merhaba Dunya!" << std::endl;

return 0;
}

Program ekrana:

Merhaba Dunya!

yazar.

#include Nedir?​

Şu satır:

#include <iostream>

standart giriş/çıkış araçlarını programa dahil eder.

std::cout

kullanabilmemizin nedeni iostream kütüphanesidir.

main Fonksiyonu Nedir?​

C++ programlarının temel başlangıç noktası:

int main()

fonksiyonudur.

Program çalıştırıldığında kod buradan başlar.

cout Nedir?​

Ekrana veri yazdırmak için:

std::cout

kullanılır.

Örneğin:

std::cout << "Merhaba";

ekrana Merhaba yazar.

endl Nedir?​

std::endl

satırı sonlandırır ve yeni satıra geçer.

Örneğin:

std::cout << "Bir" << std::endl;
std::cout << "Iki";

çıktı:

Bir
Iki

olur.

Basit durumlarda:

"\n"

da kullanılabilir.

Değişkenler ile Başlayın​

C++ öğrenirken ilk önemli konu değişkenlerdir.

Örneğin:

int yas = 25;

Burada:

int

veri tipi,

yas

değişken adı,

25

değeridir.

Temel Veri Tipleri​

Başlangıçta şu veri tiplerini öğrenmek yeterlidir:

int​

Tam sayılar:

int sayi = 10;

float​

Ondalıklı sayılar:

float fiyat = 15.5f;

double​

Daha hassas ondalıklı değerler:

double oran = 3.14159;

char​

Tek karakter:

char harf = 'A';

bool​

Doğru veya yanlış:

bool aktif = true;

String Kullanımı​

C++ standart kütüphanesinde metin için:

std::string

kullanılabilir.

Örneğin:

#include <string>

std::string isim = "Ahmet";

Bu, C dilindeki karakter dizilerine göre başlangıç için daha rahattır.

Kullanıcıdan Veri Alma​

std::cin

kullanılır.

Örneğin:

#include <iostream>

int main()
{
int yas;

std::cout << "Yasinizi girin: ";
std::cin >> yas;

std::cout << "Yasiniz: " << yas << "\n";

return 0;
}

Matematiksel Operatörler​

Başlangıçta:

+ Toplama
- Çıkarma
* Çarpma
/ Bölme
% Mod

öğrenilmelidir.

Örneğin:

int a = 10;
int b = 5;

int toplam = a + b;

if / else Öğrenin​

Koşullu işlemler programlamanın temelidir.

Örneğin:

int yas = 20;

if (yas >= 18)
{
std::cout << "Resitsiniz.\n";
}
else
{
std::cout << "Resit degilsiniz.\n";
}

Karşılaştırma Operatörleri​

== Eşittir
!= Eşit değildir
> Büyüktür
< Küçüktür
>= Büyük veya eşittir
<= Küçük veya eşittir

Özellikle:

=

ile:

==

karıştırılmamalıdır.

2025 06 07 18 28 17

Mantıksal Operatörler​

&& VE
|| VEYA
! DEĞİL

Örneğin:

if (yas >= 18 && yas <= 65)
{
std::cout << "Kosul saglandi.\n";
}

Döngülere Geçin​

Temel değişken ve koşullardan sonra:

  • for
  • while
öğrenilmelidir.

for Döngüsü​

for (int i = 1; i <= 10; i++)
{
std::cout << i << "\n";
}

while Döngüsü​

int i = 1;

while (i <= 10)
{
std::cout << i << "\n";
i++;
}

Fonksiyonları Öğrenin​

Kod büyüdükçe her şeyi main() içerisine yazmak doğru değildir.

Fonksiyonlar kullanılır.

Örneğin:

int topla(int a, int b)
{
return a + b;
}

Kullanımı:

int sonuc = topla(10, 20);

Fonksiyonları Erken Öğrenmek Önemli​

Fonksiyon mantığını iyi öğrenmeden:

  • Class
  • Unreal Engine
  • Büyük proje
konularına geçmek işleri zorlaştırır.

Öncelikle parametre ve return mantığını anlamalısınız.

Dizileri Öğrenin​

Klasik C tarzı dizi:

int sayilar[5] = {10, 20, 30, 40, 50};

Ancak modern C++ öğrenirken sadece klasik dizilere bağlı kalmamak gerekir.

Daha sonra:

  • std::array
  • std::vector
öğrenmek daha faydalıdır.

std::vector Çok Önemlidir​

C++ öğrenen birinin mutlaka öğrenmesi gereken yapılardan biridir.

Örneğin:

#include <vector>

std::vector<int> sayilar = {10, 20, 30};

Yeni değer eklemek:

sayilar.push_back(40);

Klasik dizilere göre daha esnek bir yapıdır.

Range-Based for Döngüsü​

Modern C++ içerisinde koleksiyonları dolaşmanın rahat yollarından biridir.

Örneğin:

for (int sayi : sayilar)
{
std::cout << sayi << "\n";
}

Yeni başlayanların öğrenmesi oldukça faydalıdır.

Referans Nedir?​

C++'ın önemli özelliklerinden biridir.

Örneğin:

int sayi = 10;
int& referans = sayi;

referans

aynı değişkene başka bir isim gibi davranabilir.

Fonksiyon parametrelerinde çok kullanılır.

Örneğin:

void arttir(int& sayi)
{
sayi++;
}

Pointer Nedir?​

Pointer başka bir değişkenin bellek adresini tutar.

Örneğin:

int sayi = 10;
int* ptr = &sayi;

Burada:

&sayi

bellek adresidir.

ptr

bu adresi tutar.

Pointer konusu özellikle:

  • Bellek yönetimi
  • Oyun motorları
  • Sistem programlama
  • Veri yapıları
için önemlidir.

Pointer'ı Atlamayın​

Bazı yeni başlayanlar pointer zor geldiği için doğrudan atlamak ister.

Bu doğru değildir.

Her gün pointer kullanmanız gerekmeyebilir ancak:

  • Bellek adresi
  • Dereference
  • nullptr
mantığını anlamanız gerekir.

nullptr Kullanımı​

Modern C++'ta boş pointer için:

int* ptr = nullptr;

kullanılabilir.

Pointer'ı kullanmadan önce:

if (ptr != nullptr)
{
// Kullan
}

kontrolü yapılabilir.

Class Nedir?​

Temel konuları öğrendikten sonra nesne yönelimli programlamaya geçilebilir.

Örneğin:

class Oyuncu
{
public:
int can = 100;

void hasarAl(int miktar)
{
can -= miktar;
}
};

Kullanımı:

Oyuncu oyuncu;

oyuncu.hasarAl(20);

Artık:

oyuncu.can

80 olur.

OOP Nedir?​

Object Oriented Programming yani nesne yönelimli programlamadır.

Öğrenmeniz gereken temel kavramlar:

  • Class
  • Object
  • Constructor
  • Encapsulation
  • Inheritance
  • Polymorphism
olarak sıralanabilir.

Ancak bunlara temel programlama konuları öğrenilmeden geçilmemelidir.

Constructor Nedir?​

Bir nesne oluşturulduğunda çalışan özel fonksiyondur.

Örneğin:

class Oyuncu
{
public:
int can;

Oyuncu()
{
can = 100;
}
};

Yeni Oyuncu oluşturulduğunda can değeri otomatik olarak 100 olur.

public ve private Öğrenin​

Class içerisindeki verilere erişim kontrolünü sağlar.

Örneğin:

class Hesap
{
private:
int bakiye;

public:
void bakiyeAyarla(int miktar)
{
bakiye = miktar;
}
};

Bu yapı Encapsulation mantığının temelidir.

Inheritance Nedir?​

Bir class'ın başka bir class'ın özelliklerinden yararlanmasını sağlar.

Örneğin:

class Karakter
{
public:
int can = 100;
};

class Savasci : public Karakter
{
public:
int zirh = 50;
};

Savasci

artık can özelliğine de sahiptir.

STL Öğrenin​

C++'ın en önemli bölümlerinden biri Standard Template Library yani STL'dir.

Özellikle:

  • vector
  • string
  • map
  • unordered_map
  • set
  • algorithm
öğrenmek gerekir.

Her veri yapısını sıfırdan yazmak yerine standart kütüphaneleri kullanmayı öğrenmek modern C++ için önemlidir.

std::map Nedir?​

Anahtar ve değer saklamak için kullanılabilir.

Örneğin:

#include <map>
#include <string>

std::map<std::string, int> puanlar;

puanlar["Ahmet"] = 100;
puanlar["Mehmet"] = 80;

auto Kullanımı​

Modern C++'ta değişken tipinin compiler tarafından çıkarılması için kullanılabilir.

Örneğin:

auto sayi = 10;

Burada sayi int olur.

Ancak yeni başlayan biri her şeyi auto yapmamalıdır.

Önce veri tiplerini öğrenmek daha önemlidir.

const Öğrenin​

Değişmemesi gereken değerler için kullanılır.

Örneğin:

const int maksimumCan = 100;

Daha sonra:

maksimumCan = 200;

yapamazsınız.

C++ kodlarında const kullanımı oldukça önemlidir.

Header ve CPP Dosyalarını Öğrenin​

Küçük projede tek dosya yeterlidir.

Ancak proje büyüdükçe:

Oyuncu.h
Oyuncu.cpp
main.cpp

şeklinde ayırmak gerekir.

Header dosyalarında genellikle class veya fonksiyon bildirimleri bulunur.

CPP dosyalarında implementasyon yapılır.

Debugger Kullanmayı Öğrenin​

C++ öğrenirken sadece:

std::cout

ekleyerek hata bulmaya çalışmayın.

Debugger öğrenin.

Breakpoint koyarak programı satır satır çalıştırabilirsiniz.

Bu sayede:

  • Değişken değerleri
  • Fonksiyon akışı
  • Hatanın meydana geldiği satır
görülebilir.

Visual Studio bu konuda oldukça kullanışlıdır.

Compiler Warninglerini Kapatmayın​

Kod derleniyor diye doğru çalıştığı anlamına gelmez.

Compiler:

  • Kullanılmayan değişken
  • Veri kaybı
  • Yanlış dönüşüm
gibi konularda warning verebilir.

Warningleri görmezden gelmek yerine anlamaya çalışın.

Hata Mesajlarını Okumayı Öğrenin​

C++ compiler hataları ilk başta korkutucu görünebilir.

Ancak genellikle şu bilgiler bulunur:

  • Dosya
  • Satır
  • Hata türü
İlk gerçek hata mesajından başlamak çoğu zaman daha mantıklıdır.

Tek bir eksik ; bazen arkasından onlarca hata mesajı oluşturabilir.

İlk Projeler Ne Olmalı?​

Temel konuları öğrendikten sonra küçük projeler yapın.

Hesap Makinesi​

Öğretir:

  • Değişken
  • cin/cout
  • switch
  • Fonksiyon

Sayı Tahmin Oyunu​

Öğretir:

  • Random
  • while
  • if/else

Öğrenci Not Sistemi​

Öğretir:

  • Class
  • Vector
  • Fonksiyonlar

Basit Envanter Sistemi​

Öğretir:

  • Class
  • Vector
  • String
  • Döngüler

Konsol RPG​

Öğretir:

  • OOP
  • Class
  • Combat sistemi
  • Random

Oyun Yapmak İstiyorsanız​

C++ öğrenme sebebiniz Unreal Engine ise doğrudan Unreal'a geçmek cazip gelebilir.

Ancak önce en azından şu konuları bilmek büyük avantaj sağlar:

  • Değişken
  • if/else
  • Döngü
  • Fonksiyon
  • Class
  • Pointer
  • Reference
  • Inheritance
Unreal Engine C++ kodlarını çok daha rahat anlamaya başlarsınız.

Unreal Engine İçin Her C++ Konusu Gerekir mi?​

Başlangıçta hayır.

Örneğin ileri düzey:

  • Template metaprogramming
  • Custom allocator
  • Çok karmaşık pointer teknikleri
bilmeden Unreal öğrenmeye başlayabilirsiniz.

Temeller sağlam olsun yeterlidir.

C++ Öğrenirken Algoritma Gerekli mi?​

Evet ama başlangıçta çok ileri gitmek gerekmez.

Öncelikle:

  • Döngüler
  • Diziler
  • Arama
  • Sıralama mantığı
öğrenilebilir.

Daha sonra:

  • Stack
  • Queue
  • Linked List
  • Tree
  • Graph
gibi veri yapılarına geçilebilir.

Git Kullanmayı Öğrenin​

C++ öğrenmeye başladıktan kısa süre sonra Git kullanmak büyük avantaj sağlar.

Projelerinizi:

  • GitHub
  • GitLab
gibi platformlarda tutabilirsiniz.

Özellikle proje geliştirirken hata yaptıktan sonra eski sürüme dönebilmek çok faydalıdır.

C++ Öğrenirken Yapılan Yaygın Hatalar​

Doğrudan Büyük Projeye Başlamak​

Temel bilgiler eksik kalır.

Sadece Video İzlemek​

Kod yazmadan programlama öğrenilmez.

Pointer Konusunu Atlamak​

İleri aşamada ciddi eksiklik oluşturur.

Her Şeyi Ezberlemek​

Standart kütüphane fonksiyonlarını ezberlemek yerine mantığını anlamak gerekir.

Eski C++ Eğitimlerine Bağlanmak​

Modern C++ tekniklerini öğrenmek daha mantıklıdır.

Copy/Paste ile Kod Yazmak​

Kod çalışsa bile ne yaptığını anlamayabilirsiniz.

Hata Mesajını Okumamak​

Compiler ve debugger C++ öğrenirken en önemli yardımcılardır.

İlk 4 Haftalık Öğrenme Planı​

1. Hafta​

  • IDE kurulumu
  • cout/cin
  • Değişkenler
  • Veri tipleri
  • Operatörler
  • if/else

2. Hafta​

  • for
  • while
  • Fonksiyonlar
  • Diziler
  • std::string

3. Hafta​

  • Pointer
  • Reference
  • const
  • std::vector

4. Hafta​

  • Class
  • Object
  • Constructor
  • public/private
  • Inheritance
Daha sonra küçük projelere geçilebilir.

Sonraki Aşama​

Temellerden sonra:

  • STL
  • Smart Pointer
  • Dosya işlemleri
  • Exception
  • Template
  • Lambda
  • Algorithm
  • Veri yapıları
öğrenilebilir.

Burada özellikle modern C++ için Smart Pointer konusu önemlidir.

Smart Pointer Nedir?​

Ham pointerlarla dinamik bellek yönetimi yapılabilir.

Ancak modern C++'ta birçok durumda:

  • std::unique_ptr
  • std::shared_ptr
gibi smart pointerlar tercih edilir.

Bunlar belleğin otomatik olarak yönetilmesine yardımcı olur.

Yeni başlayan biri önce klasik pointer mantığını anlamalı, ardından smart pointerlara geçmelidir.

Her Gün Kaç Saat Çalışılmalı?​

Süre kişiye göre değişir.

Ancak:

Her gün 1 saat kod yazmak

haftada bir gün 7 saat video izlemekten genellikle daha verimlidir.

Önemli olan düzenli pratik yapmaktır.

Örneğin:

30 dakika konu öğrenme
30 dakika uygulama

şeklinde çalışılabilir.

C++ Öğrenme Kontrol Listesi​

  • C++ derleyicisini kurdum mu?
  • İlk programımı çalıştırdım mı?
  • Değişkenleri biliyor muyum?
  • Veri tiplerini biliyor muyum?
  • cin ve cout kullanabiliyor muyum?
  • if/else yazabiliyor muyum?
  • for ve while kullanabiliyor muyum?
  • Fonksiyon oluşturabiliyor muyum?
  • Dizi mantığını biliyor muyum?
  • std::string kullanabiliyor muyum?
  • std::vector kullanabiliyor muyum?
  • Pointer nedir biliyor muyum?
  • Reference nedir biliyor muyum?
  • Class oluşturabiliyor muyum?
  • Constructor kullanabiliyor muyum?
  • public/private farkını biliyor muyum?
  • Inheritance mantığını biliyor muyum?
  • Debugger kullanabiliyor muyum?
  • Küçük bir proje tamamladım mı?

Sonuç​

C++ öğrenmeye başlarken en önemli konu hızlı ilerlemek değil, temelleri doğru sırayla öğrenmektir.

Başlangıç için en doğru sıra:

Değişkenler → Koşullar → Döngüler → Fonksiyonlar → Diziler → String → Vector → Pointer → Reference → Class → OOP → STL

şeklinde olabilir.

C++ öğrenmek için önceden C bilmek zorunlu değildir. Hedefiniz doğrudan oyun geliştirme, Unreal Engine veya modern C++ uygulamalarıysa doğrudan C++ ile başlayabilirsiniz.

Ancak doğrudan Unreal Engine gibi büyük bir sisteme girip C++ temellerini atlamak öğrenme sürecini gereksiz yere zorlaştırabilir.

Öncelikle küçük konsol projeleri hazırlayın:

Hesap makinesi → Sayı tahmin oyunu → Öğrenci sistemi → Envanter sistemi → Basit konsol oyunu

şeklinde ilerleyebilirsiniz.

Temel C++ bilgisi oturduktan sonra oyun geliştirme, Unreal Engine, veri yapıları veya sistem programlama gibi istediğiniz alana yönelmek çok daha kolay olacaktır.
 

Konuyu görüntüleyenler

  • Üst