- Mis on C++: C laiendusena sündinud mitmeparadigmaline keel, mis ühendab madala taseme juhtimise kõrgetasemeliste abstraktsioonidega.
- Evolutsioon: looja Bjarne Stroustrup; tänapäevased standardid (C++17, C++20) tutvustavad mooduleid, kontseptsioone ja korutiine.
- Peamised omadused: objektorienteeritud programmeerimine, mallid, käsitsi mäluhaldus ja ulatuslik standardteekide komplekt.
- Rakendused ja tööriistad: kasutatakse süsteemides, videomängudes ja andmebaasides; kompilaatorites (GCC, Clang, MSVC) ja IDE-des, näiteks Visual Studio või CLion.
C++ on tarkvaraarenduse maailmas üks mõjukamaid ja laialdasemalt kasutatavaid programmeerimiskeeli. Alates selle loomisest kuni tänapäevani on see arenenud võimsaks ja mitmekülgseks tööriistaks, mis võimaldab programmeerijatel luua tõhusaid ja suure jõudlusega rakendusi. Selles artiklis tutvume põhjalikult C++ keele sissejuhatusega.
Sissejuhatus C++ keelde
Mis on C++?
C++ on üldotstarbeline programmeerimiskeel, mis ühendab endas nii madala kui ka kõrgetasemelise programmeerimise omadusi. See loodi C- keele laiendusena , lisades uusi funktsioone, näiteks objektorienteeritud programmeerimise. Selle mitmekülgsus muudab selle ideaalseks kõige arendamiseks alates operatsioonisüsteemidest kuni videomängudeni.
Ajalugu ja areng
C++ ajalugu ulatub aastasse 1979, mil Bjarne Stroustrup hakkas tegelema niinimetatud "klassidega C" kallal. Tema eesmärk oli C täiustamine, lisades funktsioone teistest keeltest , näiteks Simulast. 1983. aastal nimetati keel ümber C++-ks ja sellest ajast alates on see läbinud mitu muudatust ja standardit, kusjuures C++20 oli kirjutamise ajal uusim versioon.
C++ alused
Programmeerimise alustamiseks C++ keeles on oluline mõista selle põhimõisteid. Vaatame olulisi elemente, mis on selle keele aluseks.
Põhisüntaks
C++ süntaks sarnaneb C-ga, kuid mõningate oluliste täiendustega. Tüüpiline C++ programm algab vajalike teekide kaasamisega, millele järgneb funktsioon main(), mis on programmi sisenemispunkt. Näiteks:
#include <iostream>
int main() {
std::cout << "¡Hola, mundo!" << std::endl;
return 0;
}
See lihtne programm näitab klassikalist "Tere, maailm!" ekraanil.
Andmetüübid ja muutujad
C++ pakub laias valikus andmetüüpe, sealhulgas:
- Täisarvud (
int) - Ujukoma numbrid (
float,double) - tegelased (
char) - Booleanid (
bool) - Massiraadid
- Näpunäited
Muutujad deklareeritakse, määrates andmetüübi, millele järgneb muutuja nimi. Näiteks:
int edad = 25; float altura = 1.75; char inicial = 'A'; bool esEstudiante = true;
Juhtstruktuurid
Juhtstruktuurid on igas programmeerimiskeeles põhilised ja C++ pole erand. Need võimaldavad meil kontrollida oma programmide täitmisvoogu.
Tingimuslikud
Tingimuslikud struktuurid võimaldavad meil sõltuvalt teatud tingimustest täita erinevaid koodiplokke. Kõige tavalisemad on if,
else if y else. Näiteks:
int edad = 18;
if (edad >= 18) {
std::cout << "Eres mayor de edad" << std::endl;
} else {
std::cout << "Eres menor de edad" << std::endl;
}
Silmused
Silmused võimaldavad meil koodiplokki mitu korda korrata. C++ pakub mitut tüüpi silmuseid:
- eest: Ideaalne, kui teame iteratsioonide täpset arvu.
- kuigi: Käitub seni, kuni tingimus on tõene.
- teha-aega: sarnane while-ga, kuid tagab vähemalt ühe täitmise.
For tsükli näide:
for (int i = 0; i < 5; i++) {
std::cout << i << " ";
}
// Salida: 0 1 2 3 4
Funktsioonid C++ keeles
Funktsioonid on korduvkasutatavad koodiplokid, mis täidavad konkreetseid ülesandeid. Need on meie programmide korraldamiseks ja struktureerimiseks hädavajalikud.
Deklaratsioon ja määratlus
C++ puhul deklareerime funktsioonid tavaliselt päisefailides (.h) ja määratleme need rakendusfailides (.cpp). Funktsiooni deklaratsioon sisaldab selle nime, tagastustüüpi ja parameetreid, samas kui definitsioon sisaldab ka funktsiooni keha.
// Declaración (en archivo .h)
int sumar(int a, int b);
// Definición (en archivo .cpp)
int sumar(int a, int b) {
return a + b;
}
Parameetrite edastamine
C++ võimaldab parameetreid funktsioonidele edastada erinevatel viisidel:
- Väärtuse järgi: luuakse argumendi koopia.
- Viitamiseks: argumendi mäluaadress on edastatud.
- Osuti abil: sarnane viitega, kuid paindlikum.
Näide viitega möödumisest:
void incrementar(int &numero) {
numero++;
}
int main() {
int x = 5;
incrementar(x);
std::cout << x; // Salida: 6
return 0;
}
Objektorienteeritud programmeerimine
Üks C++ võimsamaid funktsioone on selle objektorienteeritud programmeerimise (OOP) tugi. See paradigma võimaldab meil korraldada oma koodi struktuurideks, mida nimetatakse klassideks, mis kapseldavad seotud andmeid ja käitumist.
Klassid ja objektid
Klass on mall objektide loomiseks. Määratleb omadused (atribuudid) ja käitumise (meetodid), mis selle klassi objektidel on. Näiteks:
class Persona {
private:
std::string nombre;
int edad;
public:
Persona(std::string n, int e) : nombre(n), edad(e) {}
void saludar() {
std::cout << "Hola, soy " << nombre << " y tengo " << edad << " años." << std::endl;
}
};
int main() {
Persona p1("Ana", 25);
p1.saludar(); // Salida: Hola, soy Ana y tengo 25 años.
return 0;
}
Pärand ja polümorfism
Pärimine võimaldab luua uusi klasse olemasolevate klasside põhjal, pärides nende atribuute ja meetodeid. Polümorfism seevastu võimaldab meil kasutada erinevate andmetüüpide jaoks ühist liidest.
class Estudiante : public Persona {
private:
std::string carrera;
public:
Estudiante(std::string n, int e, std::string c) : Persona(n, e), carrera(c) {}
void estudiar() {
std::cout << "Estoy estudiando " << carrera << std::endl;
}
};
Mälu haldamine
C++ pakub täpset kontrolli mäluhalduse üle, mis võimaldab väga tõhusaid programme, kuid nõuab ka programmeerija suuremat hoolt.
Näpunäited
Osutajad on muutujad, mis salvestavad mäluaadresse. Need on võimas tööriist, aga ka tavalised vigade allikad, kui neid ei kasutata õigesti.
int x = 5; int *ptr = &x; std::cout << *ptr; // Salida: 5
Dünaamiline eraldamine
C++ võimaldab programmi täitmise ajal dünaamiliselt mälu eraldada. See on kasulik, kui me ei tea ette, kui palju mälu vajame.
int *arr = new int[10]; // Asigna un array de 10 enteros // ... usar el array ... delete[] arr; // Liberar la memoria cuando ya no se necesita
Tavalised raamatukogud
C++ on varustatud rikkaliku standardteegiga, mis pakub palju kasulikke funktsioone.
iostream
See raamatukogu pakub funktsioone sisend ja väljund andmetest. Objektid cin y cout on eriti kasulikud:
#include <iostream>
int main() {
int numero;
std::cout << "Introduce un número: ";
std::cin >> numero;
std::cout << "Has introducido: " << numero << std::endl;
return 0;
}
vektor ja string
vector on dünaamilise massiivi teostus, samas string on klass tekstistringide mugavamaks käsitlemiseks kui traditsioonilised märgimassiivid.
#include <vector>
#include <string>
std::vector<int> numeros = {1, 2, 3, 4, 5};
std::string saludo = "Hola, mundo!";
Erandite käsitlemine
Erandite käsitlemine on meie programmide vigade ja ootamatute olukordade käsitlemise tehnika.
Proovi, püüa ja viska
Me kasutame try et mähkida koodi, mis võib teha erandi, catch tabada ja käsitleda erandit ning throw teha erandit.
#include <stdexcept>
try {
int resultado = dividir(10, 0);
} catch (const std::runtime_error& e) {
std::cerr << "Error: " << e.what() << std::endl;
}
Blanketid
Mallid on C++ võimas funktsioon, mis võimaldab teil kirjutada üldist koodi, mis töötab erinevat tüüpi andmetega.
Malli funktsioonid
Malli funktsioon võib töötada mitme andmetüübiga.
template <typename T>
T maximo(T a, T b) {
return (a > b) ? a : b;
}
int main() {
std::cout << maximo(3, 7) << std::endl; // Salida: 7
std::cout << maximo(3.14, 2.72) << std::endl; // Salida: 3.14
return 0;
}
Mallklassid
Sarnaselt mallifunktsioonidele saame luua klasse, mis töötavad üldiste tüüpidega:
template <typename T>
class Contenedor {
private:
T elemento;
public:
void setElemento(T e) { elemento = e; }
T getElemento() { return elemento; }
};
Head programmeerimise tavad
Heade programmeerimistavade omaksvõtmine on kvaliteetse C++ koodi kirjutamiseks hädavajalik.
Kodeerimisstiil
Järjepideva kodeerimisstiili säilitamine parandab koodi loetavust. Mõned soovitused:
- Kasutage muutujate ja funktsioonide jaoks kirjeldavaid nimesid.
- Säilitage ühtlane taane.
- Vajadusel kommenteerige kood.
Optimeerimine
C++ võimaldab kõrgel tasemel optimeerimist. Mõned tehnikad hõlmavad järgmist:
- Võimalusel kasutage koopiate asemel viiteid.
- Vältige tarbetut ajutiste objektide loomist.
- Kasutage iga ülesande jaoks sobivaid andmestruktuure.
Arendusvahendid
C++-s tõhusaks programmeerimiseks on oluline omada õigeid tööriistu.
Koostajad
Populaarsed C++ kompilaatorid on järgmised:
- GCC (GNU kompilaatorite kogu)
- Klähvima
- Microsoft Visual C ++
Populaarsed IDE-d
Mõned populaarsed integreeritud arenduskeskkonnad (IDE-d) C++ jaoks on järgmised:
- Visual Studio
- Clion
- Kood :: plokid
- Eclipse CDT pistikprogrammiga
Praktilised rakendused
C++ kasutatakse selle tõhususe ja mitmekülgsuse tõttu väga erinevates valdkondades.
Tarkvaraarendus
C++ kasutatakse laialdaselt järgmistes valdkondades:
- operatsioonisüsteemide
- Veebibrauserid
- Andmebaasid
- kontoritarkvara
Video
Paljud suure jõudlusega mängumootorid ja mängud on kirjutatud C++ keeles, sealhulgas:
- Unreal Engine
- CryEngine
- Mängud nagu World of Warcraft ja Counter-Strike
Ressursid C++ õppimiseks
Õppimise jätkamiseks ja oma C++ oskuste parandamiseks on siin mõned soovitatavad ressursid.
Soovitatud raamatud
- Stanley Lippmani, Josée Lajoie ja Barbara E. Moo "C++ Primer"
- Scott Meyersi "Tõhus C++".
- "C++ programmeerimiskeel", autor Bjarne Stroustrup
veebikursused
- C++ programmeerijatele Udacitys
- C++ õpetus Udemy täielikele algajatele
- C++ programmeerimiskursus edX-is
Korduma kippuvad küsimused C++ keele sissejuhatuse kohta
1. Kas C++ on raske õppida?
C++ võib alguses olla keeruline, eriti kui see on teie esimene programmeerimiskeel. Kuid harjutamise ja pühendumisega on võimalik seda omandada. Alustage põhitõdedest ja liikuge järk-järgult keerukamate teemade juurde.
2. Mis vahe on C ja C++ vahel?
C++ on C laiendus, mis lisab selliseid funktsioone nagu objektorienteeritud programmeerimine, erandite käsitlemine ja mallid. Kui C on protseduurikeel, siis C++ on mitme paradigmaga.
3. Milliste projektide jaoks sobib C++ kõige paremini?
C++ sobib ideaalselt projektidele, mis nõuavad suure jõudlusega ja täpset kontrolli süsteemiressursside üle. Seda kasutatakse laialdaselt süsteemiarenduses, videomängudes, töölauarakendustes ja manustatud tarkvaras.
4. Kuidas saan oma C++ koodi parandada?
Oma C++ koodi täiustamiseks harjutage regulaarselt, lugege teiste programmeerijate koodi, osalege avatud lähtekoodiga projektides ja hoidke end kursis uute keelefunktsioonidega. Samuti on kasulik tutvuda disainimustrite ja optimeerimistehnikatega.
5. Millised eelised on C++-l teiste programmeerimiskeelte ees?
C++ pakub suurepärast tasakaalu tõhususe ja abstraktsiooni vahel. See võimaldab madalal tasemel kontrolli süsteemiressursside üle, pakkudes samal ajal võimsaid kõrgetasemelisi abstraktsioone. Lisaks tähendab selle laialdane kasutuselevõtt, et saadaval on palju raamatukogusid ja ressursse.
6. Millised on C++ viimased arengud?
C++ viimastes versioonides (C++17, C++20) on kasutusele võetud uued funktsioonid, nagu moodulid, kontseptsioonid, vahemikud ja korutiinid. Need täiustused muudavad keele väljendusrikkamaks ja hõlpsamini kasutatavaks, säilitades samal ajal sellele iseloomuliku tõhususe.
C++ keele sissejuhatuse kokkuvõte
Selles artiklis käsitletud C++ keele sissejuhatus on vaid väike osa selle võimsa keele pakutavast. Alates põhitõdedest kuni kõige keerukamate funktsioonideni on C++ tarkvaraarenduse maailmas asendamatu tööriist.
Kogu oma teekonna jooksul oleme näinud, kuidas C++ ühendab madala taseme programmeerimise tõhususe kõrgetasemeliste abstraktsioonidega, võimaldades arendajatel luua kõike alates operatsioonisüsteemidest kuni keerukate videomängudeni. Põhilised süntaks, juhtimisstruktuurid ja objektorienteeritud programmeerimiskontseptsioonid moodustavad aluse, millele on ehitatud tugevad ja suure jõudlusega rakendused.
Oleme uurinud ka täiustatud funktsioone, nagu mäluhaldus, mallide kasutamine ja erandite käsitlemine, mis annavad C++-le ainulaadse paindlikkuse ja võimsuse. Standardteegid seevastu pakuvad kasutusvalmis tööriistu, mis kiirendavad arendust ja parandavad tootlikkust.
Oluline on meeles pidada, et C++ valdamine on pidev teekond. Keel areneb pidevalt, lisades iga versiooniga uusi funktsioone ja täiustusi. Seetõttu on ülioluline olla kursis ja jätkata harjutamist, et kasutada kõike, mida C++ pakub.
Olenemata sellest, kas te alles alustate oma programmeerimisteekonda või soovite oma oskusi täiendada, pakub C++ võimaluste maailma. Tänu oma ainulaadsele tõhususe, paindlikkuse ja väljendusvõime kombinatsioonile jääb C++ programmeerimismaastiku põhikeeleks veel aastateks.
Pidage meeles, et C++ valdamise võti on pidev harjutamine ja kontseptsioonide rakendamine reaalsetes projektides. Ärge kartke katsetada, teha vigu ja õppida neist. Iga kirjutatud koodirida viib teid sammu võrra lähemale C++ eksperdiks saamisele.
Kas olete valmis sukelduma sügavamale C++ põnevasse maailma? Teekond on just alanud!
Kas see C++ keele tutvustus oli teile kasulik? Kui jah, siis jagage seda artiklit oma kaasprogrammeerijatega või nendega, kes on huvitatud programmeerimismaailma sattumisest. Üheskoos saame luua tugevama koostöövõimelisema C++ arendajate kogukonna. Jagage kohe ja aidake teistel avastada C++ võimsust!