Junior — Middle
What principle is used in RAII for automatic resource management through interfaces?
sobes.tech AI
Answer from AI
RAII (Resource Acquisition Is Initialization) uses the principle that resource management (such as memory, files, sockets) is tied to the lifetime of objects through interfaces. The main idea is that resource acquisition occurs in the object's constructor, and release happens in the destructor.
This allows automatic resource management without explicit release calls, as the destructor is called when the object goes out of scope, releasing the resource.
Example in C++:
class FileHandle {
FILE* file;
public:
FileHandle(const char* filename) {
file = fopen(filename, "r");
}
~FileHandle() {
if (file) fclose(file);
}
// Other methods for file operations
};
void func() {
FileHandle fh("data.txt");
// File operations
} // When exiting func(), the destructor of FileHandle automatically closes the file
Thus, RAII uses object interfaces and their lifecycle for automatic resource management, minimizing leaks and errors.