スマートポインタのコードについて | UE4&5 Forum | Tech Stadium Forum

スマートポインタのコードについて
 
通知
すべてクリア

スマートポインタのコードについて  

  RSS

Student
(@student)
メンバー Moderator
結合: 4年前
投稿: 1324
04/01/2021 1:16 am  

スマートポインタのコードで1点、質問となります。

対象:プロジェクト:SmartPointer、ファイル名:TableUtility.cppのsetupTable関数
レクチャー資料の通りですが、以下画像を載せています関数の内容としては、スマートポインタで参照している先の値を変更する操作となっていますが、
引数の先頭にconstが指定した状態でも、エラーにならないのはなぜなのでしょうか。
(通常のポインタでは、同様の設定をした場合はエラーになりますが)


引用
Teacher
(@admin)
メンバー Admin
結合: 4年前
投稿: 1296
04/01/2021 1:17 am  

constは後ろの変数を変更禁止にします。

const std::unique_ptr<int[]>& table
の場合は後ろのstd::unique_ptrが変更禁止になりますのでポインターが指す値の変更は可能です。

ポインターのconst化はポインターの移動、ポインターの参照先の変更などが禁止になります。

const std::unique_ptr<int[]>& table
で参照する値を変更禁止にしたい場合は
const std::unique_ptr<const int[]>& tableこのようにint[]の前にconstを付けてください。


返信引用
Student
(@student)
メンバー Moderator
結合: 4年前
投稿: 1324
04/01/2021 1:17 am  

ご回答ありがとうございます。
理解できました。(constは「<int[]>」までが対象と思っていました)


返信引用
共有:
タイトルとURLをコピーしました