Ugrás a tartalomhoz

C++ syntax

A Wikiszótárból, a nyitott szótárból


Főnév

C++ syntax (tsz. C++ syntaxes)

  1. (informatika) A C++ szintaxis a nyelv formális szabályrendszere, amely meghatározza, hogyan kell kódot írni ahhoz, hogy a fordító megértse és lefordítsa azt. A C++ szintaxisa a C nyelvre épül, de kibővül osztályokkal, sablonokkal, típusbiztonsági és objektumorientált elemekkel.



🔹 Alapvető C++ szintaxis elemek

1. Hello, World!

#include <iostream>

int main() {
    std::cout << "Hello, World!" << std::endl;
    return 0;
}

🔹 2. Típusok és változók

int x = 42;
double pi = 3.1415;
char ch = 'A';
bool isTrue = true;

🔹 3. Operátorok

🔹 Aritmetikai operátorok

Ezekkel alapvető matematikai műveleteket végezhetsz:

  • + – összeadás
  • - – kivonás
  • * – szorzás
  • / – osztás
  • % – maradékos osztás (modulo)



🔹 Relációs (összehasonlító) operátorok

Logikai igaz/hamis értékeket adnak vissza:

  • == – egyenlőség
  • != – nem egyenlő
  • < – kisebb
  • > – nagyobb
  • <= – kisebb vagy egyenlő
  • >= – nagyobb vagy egyenlő



🔹 Logikai operátorok

Feltételek kombinálására szolgálnak:

  • && – logikai ÉS
  • || – logikai VAGY
  • ! – logikai negálás (nem)



🔹 Bitműveleti operátorok

Ezek az operandusokat bitenként kezelik:

  • & – bitenkénti ÉS
  • | – bitenkénti VAGY
  • ^ – bitenkénti kizáró VAGY (XOR)
  • ~ – bitenkénti negálás
  • << – balra tolás
  • >> – jobbra tolás



🔹 Értékadó operátorok

Változók értékének beállítására és módosítására:

  • = – értékadás
  • +=, -=, *=, /=, %=, &=, |=, ^=, <<=, >>= – kombinált értékadók



🔹 Egyéb operátorok

  • sizeof – típus vagy objektum memóriaméretét adja vissza
  • ?: – ternáris operátor (feltételes)
  • typeid – típusinformáció lekérdezése
  • static_cast, dynamic_cast, const_cast, reinterpret_cast – típuskonverziós operátorok



🔹 4. Elágazások

if (x > 0) {
    std::cout << "Pozitív";
} else {
    std::cout << "Nem pozitív";
}

🔹 5. Ciklusok

for (int i = 0; i < 10; ++i)
    std::cout << i;

while (x > 0)
    --x;

do {
    std::cout << x;
} while (x > 0);

🔹 6. Függvények

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

🔹 7. Osztályok és objektumorientált programozás

class Auto {
    int sebesseg;
public:
    void gyorsit() { ++sebesseg; }
    int getSebesseg() const { return sebesseg; }
};

🔹 8. Öröklés és polimorfizmus

class Allat {
public:
    virtual void hang() { std::cout << "??"; }
};

class Kutya : public Allat {
public:
    void hang() override { std::cout << "Vau!"; }
};

🔹 9. Sablonok (Templates)

template<typename T>
T maximum(T a, T b) {
    return (a > b) ? a : b;
}

🔹 10. STL (Standard Template Library)

#include <vector>
#include <algorithm>

std::vector<int> v = {3, 1, 4};
std::sort(v.begin(), v.end());

🔹 11. Kivételkezelés (Exceptions)

try {
    throw std::runtime_error("Hiba");
} catch (const std::exception& e) {
    std::cerr << e.what();
}

🔹 12. Névtér (namespace)

namespace app {
    int val = 10;
}
int main() {
    std::cout << app::val;
}

🔹 13. Modern nyelvi elemek (C++11–C++23)

Szintaktikai elem Példa
auto típus auto x = 10;
nullptr int* p = nullptr;
Lambda kifejezés [](int x){ return x*x; }
constexpr constexpr int f() { return 5; }
Range-based for for (int x : v)
std::optional, variant, any C++17
concept template<Sortable T> (C++20)
co_yield, co_return Coroutine szintaxis (C++20)
print, format std::print("{}", x); (C++23)



🔚 Összefoglalás

A C++ szintaxisa:

  • C-re épül, de sokkal összetettebb
  • Kombinálja a procedurális, objektumorientált, és generikus programozás eszközeit
  • Egyre modernebbé válik a C++11-től kezdődően (pl. lambdák, típusinferencia, ranges)
  • Nagyon szigorú típusellenőrzést biztosít, mégis rugalmas és hatékony