Àwọn Àṣìṣe Tó Wọ́pọ̀ Nínú Ṣíṣe Ìṣètò C++ àti Bí A Ṣe Lè Ṣe Àtúnṣe Wọn
Ṣíṣe ètò C++ jẹ́ ọ̀kan lára àwọn èdè ètò tó lágbára jùlọ àti tó rọrùn jùlọ. Pẹ̀lú agbára rẹ̀ láti ṣètìlẹ́yìn fún ètò ìṣiṣẹ́, ètò ohun, àti ètò gbogbogbòò, C++ ni a ń lò ní ọ̀pọ̀lọpọ̀ àwọn ohun èlò, láti àwọn ètò ìṣiṣẹ́ sí àwọn ohun èlò eré tó ń ṣiṣẹ́ dáadáa. Síbẹ̀síbẹ̀, gẹ́gẹ́ bí èdè ètò èyíkéyìí, C++ tún ní ọ̀pọ̀lọpọ̀ àṣìṣe tó wọ́pọ̀ tí àwọn olùgbékalẹ̀, àwọn tuntun àti àwọn onímọ̀ nípa rẹ̀, máa ń rí. Àpilẹ̀kọ yìí yóò jíròrò àwọn àṣìṣe tó wọ́pọ̀ nínú ètò C++ àti láti fúnni ní ìtọ́sọ́nà lórí bí a ṣe lè ṣàtúnṣe wọn.
1. Lilo Awọn itọka Alailẹgbẹ
Àṣìṣe:
Àmì tí a kò tíì bẹ̀rẹ̀ lè tọ́ka sí ibi tí a kò mọ̀ nípa ìrántí, èyí tí ó lè fa ìwà àìròtẹ́lẹ̀ tàbí ìkọlù ètò. Àpẹẹrẹ àṣìṣe yìí ni èyí:
" cpp
int ptr; // ptr ko ti bẹrẹ
ptr = 10; // Àṣìṣe: a kò bẹ̀rẹ̀ ìtọ́kasí
““
Bawo ni lati ṣe atunṣe:
Ṣe àgbékalẹ̀ àmì ìtọ́kasí náà kí o tó lò ó. O lè bẹ̀rẹ̀ rẹ̀ pẹ̀lú `nullptr` tàbí pẹ̀lú àdírẹ́sì ìrántí tó wúlò.
" cpp
int ptr = nullptr; // Ṣe ìpilẹ̀ṣẹ̀ pẹ̀lú nullptr
iye int = 10;
ptr = &iye;
ptr = 20; // Bayi ni ailewu
““
2. Àwọn àṣìṣe nínú ìṣàkóso ìrántí (Ìjókòó ìrántí)
Àṣìṣe:
Ìjáde ìrántí máa ń ṣẹlẹ̀ nígbà tí a kò bá tún fi ìrántí tí a yàn sílẹ̀. Èyí lè fa kí ohun èlò kan máa lo ìrántí púpọ̀ sí i nígbà tí àkókò bá ń lọ, èyí tó máa yọrí sí àìtó ìrántí.
" cpp
int ptr = int tuntun[10];
// Gbagbe lati paarẹ iranti ti a pin sọtọ
““
Bawo ni lati ṣe atunṣe:
Rí i dájú pé o tú ìrántí tí a yàn sílẹ̀ nípa lílo `pa` tàbí `paárẹ́[]` ní ìbámu pẹ̀lú ohun tí a lò láti pín in síta.
" cpp
int ptr = int tuntun[10];
// Lilo iranti…
paarẹ[] ptr; // Ìrántí tí a yàn fún ọ̀fẹ́
““
Lo ibi ìkàwé àwọn àmì ìtọ́kasí ọlọ́gbọ́n (bíi `std::unique_ptr` tàbí `std::shared_ptr`) láti jẹ́ kí ìṣàkóso ìrántí rọrùn.
" cpp
ni
std :: oto_ptr
// A o tu iranti silẹ laifọwọyi nigbati ptr ba jade kuro ni aaye naa
““
3. Àṣìṣe nínú Lílo Àwọn Ìtọ́kasí
Àṣìṣe:
Dídá ìtọ́kasí tàbí ìtọ́kasí padà sí onírúurú agbègbè kan tí ó ti kọjá ààlà lè fa ìwà àìròtẹ́lẹ̀.
" cpp
int&getReference() {
iye int = 10;
iye ipadabọ; // Àṣìṣe: pípadà ìtọ́kasí sí oniyipada agbegbe kan
}
““
Bawo ni lati ṣe atunṣe:
Yẹra fún dídá àwọn ìtọ́kasí padà sí àwọn oníyípadà agbègbè. Dípò bẹ́ẹ̀, lo àwọn oníyípadà tí kò dúró, tàbí kí o dá àwọn oníwọ̀n padà, tàbí kí o ronú nípa lílo àwọn ohun.
" cpp
int getValue() {
iye int = 10;
iye ipadabọ; // Ailewu
}
““
4. Foju fo Awọn ifiranṣẹ ati Awọn Ikilọ Aṣiṣe Akopọ
Àṣìṣe:
Àwọn olùṣètò ìgbàlódé sábà máa ń fojú fo àwọn ìfiranṣẹ́ àṣìṣe àti ìkìlọ̀ tí olùṣètò ìgbàlódé náà ń fúnni, bó tilẹ̀ jẹ́ pé àwọn ìránṣẹ́ wọ̀nyí ń fúnni ní ìsọfúnni pàtàkì nípa àwọn àṣìṣe tó lè ṣẹlẹ̀.
Bawo ni lati ṣe atunṣe:
Máa ṣàyẹ̀wò kí o sì lóye àwọn ìfiranṣẹ́ àṣìṣe àti ìkìlọ̀ tí olùkójọpọ̀ náà ń ṣe nígbà gbogbo. Jẹ́ kí àwọn ìkìlọ̀ gíga ṣiṣẹ́ láti rí i dájú pé kódì náà mọ́ tónítóní.
Fún àpẹẹrẹ nínú GCC, lo àsíá `-Wall` láti ṣe àwọn ìkìlọ̀ síi.
"' bash
ètò g++ -Ogiri -o main.cpp
““
5. Àṣìṣe nínú ìṣiṣẹ́ tó pọ̀ jù
Àṣìṣe:
Àìṣeéṣe iṣẹ́ tó ń ṣiṣẹ́ lórí rẹ̀ lè fa ìwà àìròtẹ́lẹ̀ tàbí àṣìṣe tó ń ṣẹlẹ̀ nígbà tí a bá ń ṣiṣẹ́.
" cpp
kilasi MyClass {
gbangba
data int;
Olùṣiṣẹ́ MyClass+ (const MyClass& òmíràn) {
dá dátà + dátà mìíràn padà; // Àṣìṣe: ó yẹ kí ó dá MyClass padà
}
};
““
Bawo ni lati ṣe atunṣe:
Rí i dájú pé olùṣiṣẹ́ tí ó kún fún ẹrù náà dá irú tí ó yẹ padà, ó sì pa àwọn àìyípadà ti kilasi náà mọ́.
" cpp
kilasi MyClass {
gbangba
data int;
Olùṣiṣẹ́ MyClass+ (const MyClass& òmíràn) {
Àbájáde MyClass;
àbájáde.dátà = dátà + dátà mìíràn;
dá àbájáde padà; // Ó dá ohun kan padà láti MyClass
}
};
““
6. Lílo àwọn Macros ní ọ̀nà tí kò tọ́
Àṣìṣe:
Nígbà míìrán, a máa ń lo àwọn Macros ju bó ṣe yẹ lọ tàbí ní àìtọ́, èyí tó lè fa àṣìṣe tó ṣòro láti rí nígbà tí a bá ń ṣiṣẹ́.
" cpp
ṣe àgbékalẹ̀ SQUARE(x) xx
int result = SQUARE(5 + 1); // Àṣìṣe: àbájáde náà jẹ́ 5 + 1 5 + 1
““
Bawo ni lati ṣe atunṣe:
Rọpo awọn macros pẹlu awọn ikosile tabi awọn awoṣe ti o duro nigbagbogbo fun aabo iru ati iṣakoso ti o dara julọ.
" cpp
awoṣe
Onígun mẹ́rin T (T x) {
dápadà xx;
}
int result = square(5 + 1); // Ailewu lati lo
““
7. Lilo Awọn Iṣẹ-ara C ni ilokulo
Àṣìṣe:
Lílo àwọn iṣẹ́ C-style bíi `strcpy` tàbí `sprintf` tí ó lè fa ìṣàn omi.
" cpp
char src[] = "Ẹ kú àárọ̀, ayé!";
àkójọpọ̀ [5];
strcpy(dest, src); // Àṣìṣe: ìkún omi ìfàsẹ́yìn
““
Bawo ni lati ṣe atunṣe:
Lo àwọn iṣẹ́ C++ tó ní ààbò bíi `std::string` tàbí `std::vector`.
" cpp
ni
std::string src = “Ẹ kú àárọ̀, ayé!”;
std::string dest = src;
““
8. Àìka Ṣíṣàwárí Àṣìṣe sí
Àṣìṣe:
Fojú fo àṣìṣe tí a ń ṣàyẹ̀wò lórí iṣẹ́ I/O tàbí àwọn iṣẹ́ tí ó lè kùnà.
" cpp
fáìlì std::ifstream(“data.txt”);
// Aṣiṣe: ko ṣayẹwo boya faili naa ti ṣii ni aṣeyọri
““
Bawo ni lati ṣe atunṣe:
Máa ṣàyẹ̀wò bóyá iṣẹ́ náà yọrí sí rere, kí o sì máa bójú tó àwọn àṣìṣe náà dáadáa.
" cpp
fáìlì std::ifstream(“data.txt”);
tí (fáìlì!) {
std::cerr << "Kò ṣeé ṣe láti ṣí fáìlì" << std::endl; return 1; } ```` 9. Àṣìṣe Ìmúlò Lílo ...
std::for_each(vec.begin(), vec.end(), [](int &value) {
// Ilana pẹlu iye
});
““
10. Àṣìṣe nínú mímú àwọn okùn ìfọ̀rọ̀wérọ̀
Àṣìṣe:
Àìṣeéṣe àwọn okùn ìfọ́ lè fa àwọn ipò ìdíje tàbí àìṣeéṣe.
" cpp
ni
// Àṣìṣe: Ipò ìdíje lè ṣẹlẹ̀
}
std::thread t1(sáré);
std::thread t2(sáré);
““
Bawo ni lati ṣe atunṣe:
Lo àwọn ohun ìpìlẹ̀ ìṣọ̀kan bíi mutexes láti dènà àwọn ipò ìdíje àti àwọn ìdíje tí kò ní sí ìdí.
" cpp
ni
std::mutex mtx;
ìṣiṣẹ́ òfo() {
std::lock_guard
// Ilana kan ti o ni aabo lati awọn ipo ere-ije
}
std::thread t1(sáré);
std::thread t2(sáré);
t1.jọpọ̀();
t2.jọpọ̀();
““
Ipari
C++ jẹ́ èdè ètò ìṣiṣẹ́ tó lágbára tó sì rọrùn láti lò, àmọ́ ó tún máa ń fa àṣìṣe tó wọ́pọ̀, pàápàá jùlọ tó jẹ mọ́ ìtọ́jú ìrántí àti ìtọ́kasí. Nípa lílóye àwọn àṣìṣe wọ̀nyí àti mímọ bí a ṣe lè tún wọn ṣe, o lè ṣe àwọn ohun èlò tó ṣeé gbẹ́kẹ̀lé àti tó gbéṣẹ́. Rántí láti máa kíyèsí àwọn ìránṣẹ́ ìkọ̀wé, lo àwọn irinṣẹ́ òde òní tó ń ràn ọ́ lọ́wọ́ láti kọ kódì tó ní ààbò, àti láti máa mú kí àwọn ọgbọ́n rẹ pọ̀ sí i nínú lílóye àti lílo àwọn ìlànà ètò ìṣiṣẹ́ C++ tó dára jùlọ.