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: |

Unlimited members in Telegram group now

Telegram has made it easier for its users to communicate, as it has introduced a feature that allows more than 200,000 users in a group chat. However, if the users in a group chat move past 200,000, it changes into "Broadcast Group", but the feature comes with a restriction. Groups with close to 200k members can be converted to a Broadcast Group that allows unlimited members. Only admins can post in Broadcast Groups, but everyone can read along and participate in group Voice Chats," Telegram added.

Telegram today rolling out an update which brings with it several new features.The update also adds interactive emoji. When you send one of the select animated emoji in chat, you can now tap on it to initiate a full screen animation. The update also adds interactive emoji. When you send one of the select animated emoji in chat, you can now tap on it to initiate a full screen animation. This is then visible to you or anyone else who's also present in chat at the moment. The animations are also accompanied by vibrations. This is then visible to you or anyone else who's also present in chat at the moment. The animations are also accompanied by vibrations.

C geek from pl


Telegram C++ geek
FROM USA