Junior — Middle
Дар C++ кадом намудҳои ишораҳои зеҳнӣ мавҷуданд?
sobes.tech AI
Ҷавоб аз AI
Дар C++ мавҷуданд чанд навъ асосии ишораҳои зеҳнӣ, ки кӯмак мекунанд дар идоракунии вақти зиндагии объектҳо ва пешгирии фиребҳои хотира:
-
std::unique_ptr— таъмин мекунад соҳиби ягонаи объект. Объект вақте нобуд мешавад, киunique_ptrаз доираи амал хориҷ мешавад. Нусхабардорӣ намешавад, аммо интиқол дода мешавад. -
std::shared_ptr— ҳисобкунии истинодҳоро амалӣ мекунад. Баъзе ишораҳо метавонанд соҳиби як объект бошанд, ки вақте охиринshared_ptrхориҷ мешавад, нобуд мешавад. -
std::weak_ptr— ишораи заиф ба объект, ки аз ҷонибиshared_ptrидора мешавад. Ба вақти зиндагии объект таъсир намерасонад, барои пешгирии ишораҳои циклӣ истифода мешавад.
Маслиҳат барои истифода:
#include <memory>
#include <iostream>
int main() {
std::unique_ptr<int> p1 = std::make_unique<int>(42);
// std::unique_ptr<int> p2 = p1; // Хатои нусхабардорӣ
std::unique_ptr<int> p2 = std::move(p1); // интиқоли соҳибӣ
std::shared_ptr<int> sp1 = std::make_shared<int>(100);
std::shared_ptr<int> sp2 = sp1; // афзоиши ҳисобкунии истинодҳо
std::weak_ptr<int> wp = sp1; // афзоиш намедиҳад
std::cout << *sp2 << std::endl; // 100
}