如何解释“const unique_ptr”

问题描述 投票:0回答:2
const unique_ptr<int> upi{new int{4}};
cout << ++*upi << '\n';

似乎

upi
是一个
const smart pointer
。它指向的
int
仍然可以修改。如果我想将
int
声明为
const
怎么办?

const unqiue_ptr<int> const upi{new int{4}};    //Error: duplicate const
c++ constants unique-ptr
2个回答
21
投票

以防万一有人想知道 const unique_ptr 是什么: 它是一个 unique_ptr,在其生命周期内不会交换所拥有的对象。 然而,拥有的对象不是 const。因此,它是 Pimpl 习语的绝佳候选者


20
投票

据我了解,你想要的是整数

const
而不是指针本身,对吧?那么你必须写:

unique_ptr<const int> upi{new int{4}}; 
© www.soinside.com 2019 - 2024. All rights reserved.