Telegram Group & Telegram Channel
🧡 RAII β€” Π³Π»Π°Π²Π½Ρ‹ΠΉ сСкрСт устойчивого ΠΊ ΡƒΡ‚Π΅Ρ‡ΠΊΠ°ΠΌ C++ ΠΊΠΎΠ΄Π°

ΠŸΡ€ΠΈΠ²Π΅Ρ‚! БСгодня Ρ…ΠΎΡ‡Ρƒ Π½Π°ΠΏΠΎΠΌΠ½ΠΈΡ‚ΡŒ ΠΎ Ρ‚Π΅Ρ…Π½ΠΈΠΊΠ΅, Π±Π΅Π· ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΈΡΠ°Ρ‚ΡŒ бСзопасный ΠΈ устойчивый C++ ΠΊΠΎΠ΄ β€” это RAII (Resource Acquisition Is Initialization).

RAII β€” это ΠΈΠ΄ΠΈΠΎΠΌΠ°, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ Π·Π°Ρ…Π²Π°Ρ‚ рСсурса (Ρ„Π°ΠΉΠ», сокСт, ΠΏΠ°ΠΌΡΡ‚ΡŒ, ΠΌΡŒΡŽΡ‚Π΅ΠΊΡ) происходит Π² конструкторС ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°, Π° освобоТдСниС β€” Π² дСструкторС. Благодаря этому рСсурсы ΠΎΡΠ²ΠΎΠ±ΠΎΠΆΠ΄Π°ΡŽΡ‚ΡΡ автоматичСски, Π΄Π°ΠΆΠ΅ ΠΏΡ€ΠΈ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡΡ….

ΠŸΡ€ΠΈΠΌΠ΅Ρ€:


#include <fstream>

void saveData(const std::string& filename) {
std::ofstream file(filename); // ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΠΈΠ΅ Ρ„Π°ΠΉΠ»Π°
if (!file.is_open())
throw std::runtime_error("Cannot open file");

file << "some data"; // Ρ„Π°ΠΉΠ» закроСтся автоматичСски
}


RAII Π΄Π΅Π»Π°Π΅Ρ‚ Ρ‚Π²ΠΎΠΉ ΠΊΠΎΠ΄:
βœ… БСзопасным ΠΊ ΡƒΡ‚Π΅Ρ‡ΠΊΠ°ΠΌ
βœ… Устойчивым ΠΊ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡΠΌ
βœ… Π›Ρ‘Π³ΠΊΠΈΠΌ для чтСния ΠΈ сопровоТдСния

πŸ’‘ Π‘ΠΎΠ²Π΅Ρ‚: всСгда ΠΎΠ±ΠΎΡ€Π°Ρ‡ΠΈΠ²Π°ΠΉ "Ρ€ΡƒΡ‡Π½Ρ‹Π΅" рСсурсы Π² ΠΎΠ±Ρ‘Ρ€Ρ‚ΠΊΠΈ β€” std::unique_ptr, std::lock_guard, std::ofstream, std::thread ΠΈ Ρ‚.Π΄.


➑️ @cpp_geek



tg-me.com/cpp_geek/295
Create:
Last Update:

🧡 RAII β€” Π³Π»Π°Π²Π½Ρ‹ΠΉ сСкрСт устойчивого ΠΊ ΡƒΡ‚Π΅Ρ‡ΠΊΠ°ΠΌ C++ ΠΊΠΎΠ΄Π°

ΠŸΡ€ΠΈΠ²Π΅Ρ‚! БСгодня Ρ…ΠΎΡ‡Ρƒ Π½Π°ΠΏΠΎΠΌΠ½ΠΈΡ‚ΡŒ ΠΎ Ρ‚Π΅Ρ…Π½ΠΈΠΊΠ΅, Π±Π΅Π· ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΈΡΠ°Ρ‚ΡŒ бСзопасный ΠΈ устойчивый C++ ΠΊΠΎΠ΄ β€” это RAII (Resource Acquisition Is Initialization).

RAII β€” это ΠΈΠ΄ΠΈΠΎΠΌΠ°, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ Π·Π°Ρ…Π²Π°Ρ‚ рСсурса (Ρ„Π°ΠΉΠ», сокСт, ΠΏΠ°ΠΌΡΡ‚ΡŒ, ΠΌΡŒΡŽΡ‚Π΅ΠΊΡ) происходит Π² конструкторС ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°, Π° освобоТдСниС β€” Π² дСструкторС. Благодаря этому рСсурсы ΠΎΡΠ²ΠΎΠ±ΠΎΠΆΠ΄Π°ΡŽΡ‚ΡΡ автоматичСски, Π΄Π°ΠΆΠ΅ ΠΏΡ€ΠΈ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡΡ….

ΠŸΡ€ΠΈΠΌΠ΅Ρ€:


#include <fstream>

void saveData(const std::string& filename) {
std::ofstream file(filename); // ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΠΈΠ΅ Ρ„Π°ΠΉΠ»Π°
if (!file.is_open())
throw std::runtime_error("Cannot open file");

file << "some data"; // Ρ„Π°ΠΉΠ» закроСтся автоматичСски
}


RAII Π΄Π΅Π»Π°Π΅Ρ‚ Ρ‚Π²ΠΎΠΉ ΠΊΠΎΠ΄:
βœ… БСзопасным ΠΊ ΡƒΡ‚Π΅Ρ‡ΠΊΠ°ΠΌ
βœ… Устойчивым ΠΊ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡΠΌ
βœ… Π›Ρ‘Π³ΠΊΠΈΠΌ для чтСния ΠΈ сопровоТдСния

πŸ’‘ Π‘ΠΎΠ²Π΅Ρ‚: всСгда ΠΎΠ±ΠΎΡ€Π°Ρ‡ΠΈΠ²Π°ΠΉ "Ρ€ΡƒΡ‡Π½Ρ‹Π΅" рСсурсы Π² ΠΎΠ±Ρ‘Ρ€Ρ‚ΠΊΠΈ β€” std::unique_ptr, std::lock_guard, std::ofstream, std::thread ΠΈ Ρ‚.Π΄.


➑️ @cpp_geek

BY C++ geek




Share with your friend now:
tg-me.com/cpp_geek/295

View MORE
Open in Telegram


C geek Telegram | DID YOU KNOW?

Date: |

Start with a fresh view of investing strategy. The combination of risks and fads this quarter looks to be topping. That means the future is ready to move in.Likely, there will not be a wholesale shift. Company actions will aim to benefit from economic growth, inflationary pressures and a return of market-determined interest rates. In turn, all of that should drive the stock market and investment returns higher.

The Singapore stock market has alternated between positive and negative finishes through the last five trading days since the end of the two-day winning streak in which it had added more than a dozen points or 0.4 percent. The Straits Times Index now sits just above the 3,060-point plateau and it's likely to see a narrow trading range on Monday.

C geek from fr


Telegram C++ geek
FROM USA