Khaladaadka caadiga ah ee barnaamijyada C++ iyo sida loo hagaajiyo

Khaladaadka Caadiga ah ee ku jira Barnaamijyada C++ iyo Sida loo Hagaajiyo

Barnaamijyada C++ waa mid ka mid ah luqadaha barnaamijyada ugu awoodda badan uguna dabacsan. Iyada oo leh awood ay ku taageerto barnaamijyada hab-raaca, ku-saleysan walxaha, iyo kuwa guud, C++ waxaa si weyn loogu isticmaalaa barnaamijyo kala duwan, laga bilaabo nidaamyada hawlgalka ilaa barnaamijyada ciyaaraha ee waxqabadka sare leh. Si kastaba ha ahaatee, sida luqad kasta oo barnaamij ah, C++ sidoo kale waxay leedahay tiro khaladaad caadi ah oo ay inta badan la kulmaan horumariyayaasha, kuwa cusub iyo kuwa khibradda lehba. Maqaalkani wuxuu ka hadli doonaa khaladaadka caadiga ah ee barnaamijyada C++ wuxuuna bixin doonaa hagitaan ku saabsan sida loo hagaajiyo.

1. Adeegsiga Tilmaamayaasha Aan Bilow ahayn

Khalad:
Tilmaame aan la bilaabin wuxuu tilmaami karaa meel aan la garanayn oo xusuusta ah, taasoo keenta dhaqan aan la filayn ama barnaamij burbur. Tusaale ahaan qaladkan waa sidan soo socota:

"Cpp
int ptr; // ptr lama bilaabin
ptr = 10; // Khalad: tilmaame lama bilaabin
““

Sida loo Hagaajiyo:
Bilow tilmaamaha ka hor intaadan isticmaalin. Waxaad ku bilaabi kartaa `nullptr` ama cinwaan xasuuseed oo ansax ah.

"Cpp
int ptr = nullptr; // Ku bilow nullptr
qiimaha int = 10;
Ptr = &qiimo;
ptr = 20; // Hadda ammaan ah
““

2. Khaladaadka Maareynta Xusuusta (Daadashada Xusuusta)

Khalad:
Daadashada xusuusta waxay dhacdaa marka xusuusta loo qoondeeyay aan dib loo sii deyn. Tani waxay sababi kartaa in codsigu uu isticmaalo xusuus badan waqti ka dib, taasoo ugu dambeyntii horseedda yaraanta xusuusta.

"Cpp
int ptr = int cusub[10];
// Ha iloobin inaad tirtirto xusuusta loo qoondeeyay
““

Sida loo Hagaajiyo:
Had iyo jeer hubi inaad xoreyso xusuusta loo qoondeeyay adoo isticmaalaya 'tirtir' ama 'tirtir[]' iyadoo ku xiran waxa loo isticmaalay in lagu qoondeeyo.

"Cpp
int ptr = int cusub[10];
// Isticmaalka xusuusta…
tirtir[] ptr; // Xusuusta loo qoondeeyay ee bilaashka ah
““

Isticmaal maktabad tilmaame caqli badan (sida `std::unique_ptr` ama `std::shared_ptr`) si aad u fududeyso maaraynta xusuusta.

"Cpp
waxaa ka mid ah

std::unique_ptr ptr(int cusub[10]);
// Xusuusta si toos ah ayaa loo sii deyn doonaa marka ptr ka baxdo baaxadda
““

3. Khaladaadka Isticmaalka Tixraacyada

Khalad:
Ku celinta tixraac ama tilmaame doorsoome maxalli ah oo ka baxay baaxadda waxay sababi kartaa dhaqan aan la filayn.

"Cpp
int& getReference() {
qiimaha int = 10;
qiimaha soo celinta; // Khalad: soo celinta tixraaca doorsoomaha maxalliga ah
}
““

Sida loo Hagaajiyo:
Iska ilaali inaad ku celiso tixraacyada doorsoomayaasha maxalliga ah. Taa beddelkeeda, isticmaal doorsoomayaasha taagan, ama si ka wanaagsan, soo celi qiimayaasha, ama tixgeli inaad isticmaasho walxaha.

"Cpp
int getValue() {
qiimaha int = 10;
qiimaha soo celinta; // Ammaan ah
}
““

4. Iska ilow Farriimaha iyo Digniinaha Khaladaadka Compiler-ka

Khalad:
Barnaamij-sameeyayaashu badanaa way iska indhatiraan fariimaha khaladaadka iyo digniinaha uu soo saaro qalab-sameeyaha, inkastoo fariimahani ay bixiyaan macluumaad muhiim ah oo ku saabsan khaladaadka suurtagalka ah.

Sida loo Hagaajiyo:
Had iyo jeer hubi oo faham fariimaha khaladaadka iyo digniinaha uu soo saaro soo-saareha. Fur digniinaha heerka sare ah si loo hubiyo kood nadiif ah.

Tusaale ahaan GCC, isticmaal calanka `-Wall` si aad u soo saarto digniino badan.

"`bash
barnaamijka g++ -Wall -o main.cpp
““

5. Khalad ku jira Cusbooneysiinta Xad-dhaafka ah ee Hawl-wadeenka

Khalad:
Xad-dhaafka xad-dhaafka ah ee hawlwadeenka ayaa sababi kara dhaqan aan la filayn ama khaladaad waqtiga socodsiinta.

"Cpp
fasalka MyClass {
dadweynaha:
xogta int;
Hawl-wadeenka MyClass+ (const MyClass & kuwa kale) {
soo celi xogta + xogta kale; // Khalad: waa inuu soo celiyaa MyClass
}
};
““

Sida loo Hagaajiyo:
Hubi in hawlwadeenka xad-dhaafka ah uu soo celiyo nooca ku habboon oo uu ilaaliyo isbeddellada fasalka.

"Cpp
fasalka MyClass {
dadweynaha:
xogta int;
Hawl-wadeenka MyClass+ (const MyClass & kuwa kale) {
Natiijada MyClass;
natiijo.xog = xog + xog kale;
soo celi natiijo; // Waxay soo celisaa shay ka yimid MyClass
}
};
““

6. Si Xun u Isticmaalka Macros-ka

Khalad:
Macros-yada mararka qaarkood si xad dhaaf ah ama si khaldan ayaa loo isticmaalaa, taasoo keeni karta khaladaad ay adag tahay in la ogaado waqtiga socodsiinta.

"Cpp
qeex SQUARE(x) xx

natiijada int = SQUARE(5 + 1); // Khalad: natiijadu waa 5 + 1 5 + 1
““

Sida loo Hagaajiyo:
Ku beddel macros-ka tibaaxo joogto ah ama qaabab si aad u hesho ammaan iyo xakameyn nooca wanaagsan.

"Cpp
template
Laba-jibbaaran T (T x) {
soo celi xx;
}

natiijada int = labajibbaaran(5 + 1); // Ammaan in la isticmaalo
““

7. Si Xun u Isticmaalka Hawlaha Nooca C

Khalad:
Adeegsiga hawlaha qaabka C sida 'strcpy' ama 'sprintf' kuwaas oo u nugul qulqulka kaydka.

"Cpp
char src[] = "Hello, Adduunyo!";
char dest[5];
strcpy(dest, src); // Khalad: Buufinta Buufinta
““

Sida loo Hagaajiyo:
Adeegso hawlaha C++ ee ammaan ah sida `std::string` ama `std::vector`.

"Cpp
waxaa ka mid ah
std::string src = “Hello, Adduunyo!”;
std::string dest = src;
““

8. Iska indha tirka Ogaanshaha Khaladaadka

Khalad:
Iska indha tir khaladaadka hubinta hawlaha I/O ama hawlaha fashilmi kara.

"Cpp
std:: faylka ifstream ("data.txt");
// Khalad: lama hubin in faylka si guul leh loo furay
““

Sida loo Hagaajiyo:
Had iyo jeer hubi in hawlgalku uu guuleystay oo si habboon u maareyso khaladaadka.

"Cpp
std:: faylka ifstream ("data.txt");
haddii (!faylka) {
std::cerr << "Faylka waa la furi waayay" << std::endl;
soo noqo 1;
}
““

9. Hirgelinta Wareegga Aan Wanaagsanayn

Khalad:
Isticmaalka wareegyada aan fiicnayn waxay sababi kartaa hoos u dhac ku yimaada waxqabadka barnaamijka.

"Cpp
ee (int i = 0; i < vec.size(); i++) {
// Geedi socodka vec[i]
// Khalad: size() ayaa loo yeeray ku celcelin kasta
}
““

Sida loo Hagaajiyo:
Hagaaji wareegyada adigoo yareynaya wicitaanada shaqada ee soo noqnoqda.

"Cpp
loogu talagalay (std::size_t i = 0, n = vec.size(); i < n; i++) {
// Geedi socodka vec[i]
}
““

Sidoo kale ka faa'iidayso algorithms-ka STL sida `std::for_each` si aad u sii wanaajiso.

"Cpp
waxaa ka mid ah
std::for_each(vec.begin(), vec.end(), [](int &qiimaha) {
// Geedi socodka qiimaha leh
});
““

10. Khalad ku jira Maareynta Mawduuca

Khalad:
Khalkhalka dunta waxay keeni kartaa xaalado tartan ama is-afgarad la'aan.

"Cpp
ku dar orod aan waxba tarayn() {
// Khalad: Xaalad jinsiyadeed ayaa dhici karta
}

std::thread t1 (orod);
std::thread t2 (orod);
““

Sida loo Hagaajiyo:
Isticmaal waxyaabaha aasaasiga ah ee isku-dubaridka sida mutexes si aad uga hortagto xaaladaha tartanka iyo caqabadaha.

"Cpp
ku dar ku dar

std::mutex mtx;

void run() {
std:: qufulka_ilaaliyaha(mtx);
// Hawsha ka badbaado xaaladaha jinsiyadda
}

std::thread t1 (orod);
std::thread t2 (orod);

t1.ku biir();
t2.ku biir();
““

Gabagabo

C++ waa luuqad barnaamij oo awood badan oo dabacsan, laakiin sidoo kale waxay u nugul tahay khaladaadka caadiga ah, gaar ahaan kuwa la xiriira maaraynta xusuusta iyo tilmaamaha. Markaad fahamto khaladaadkan oo aad ogaato sida loo hagaajiyo, waxaad horumarin kartaa barnaamijyo lagu kalsoonaan karo oo hufan. Xasuuso inaad had iyo jeer fiiro gaar ah u yeelato fariimaha isku-darka, isticmaasho qalab casri ah oo kaa caawinaya inaad qorto kood ammaan ah , oo aad si joogto ah u horumariso xirfadahaaga fahamka iyo adeegsiga dhaqamada ugu wanaagsan ee barnaamijyada C++.

Faallo ka tag