tôi đang làm việc với một cơ sở mã mà làm cho sử dụng rộng rãi trong những cú pháp sau:Tôi có nên sử dụng shared_ptr <Object> myObject = (shared_ptr <Object>) new Object() để truy cập các nhà thầu tư nhân không?
shared_ptr<Object> myObject = (shared_ptr<Object>) new Object();
tôi nhận thấy rằng tôi không thể truy cập constructors riêng với make_shared
, nhưng shared_ptr<Object> myObject = (shared_ptr<Object>) new Object();
làm việc tốt. Tôi có nên sử dụng nó chỉ vì nó có vẻ hoạt động không? Có nguy hiểm gì không? Nó khác với make_shared
như thế nào?
tôi biết câu trả lời trong this câu hỏi, mà làm cho sự so sánh giữa make_shared
và:
std::shared_ptr<Object> p2(new Object("foo"));
nhưng tôi đã không thể tìm thấy một tài liệu tham khảo cho các cú pháp Tôi đã xem qua. Nó khác, hay nó giống như trên?
Dòng mã đầu tiên trông giống như dàn diễn viên kiểu 'C': xem (1) tại đây: http://en.cppreference.com/w/cpp/language/explicit_cast –
Hãy xem tại đây: https://stackoverflow.com/questions/32168/c-cast-syntax-styles – zdan