簡體   English   中英

C ++ - 指向模板結構數組的指針

[英]C++ - pointer to array of template struct

我想要一個指向模板結構數組的const指針。 我收到了一個錯誤,我對C ++不太熟悉,所以我不確定從哪里開始。 有人可以解釋一下如何正確地做到這一點以及我做錯了什么? 提前致謝。

結構:

template <typename T> struct FrequencyEntry {
    unsigned short freq;
    T result;
};

碼:

FrequencyEntry<std::string> arr[] = {
    {5, std::string("test")},
    {10, std::string("asdf")},
};

FrequencyEntry<std::string> * const arr_pointer = &arr;

最后一行發生錯誤:

error C2440: 'initializing' : cannot convert from 'FrequencyEntry<T> (*)[2]' to 'FrequencyEntry<T> *const '

數組衰減為指針,因此您不需要預先掛起地址運算符&

FrequencyEntry<std::string> * const arr_pointer = arr;

請注意,這是一個const指針,這意味着您無法修改指針本身,但您可以通過指針修改它指向的對象。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM