• 1106阅读
  • 2回复

[提问]static const QVector<const QString>初始化 [复制链接]

上一主题 下一主题
离线介农酥
 

只看楼主 倒序阅读 楼主  发表于: 2022-06-17
回复本帖可获得10RMB金钱奖励!
每人最多可获奖1次,奖池剩余20RMB金钱 (中奖几率90%)
static const QVector< const QString> typeVec;

怎么初始化?

比如,这样初始化
const QVector< const QString> ClassName::typeVec
{
"1"
"2"
"3"
}
报如下错:
error: invalid conversion from 'const void*' to 'void*'
离线realfan

只看该作者 1楼 发表于: 2022-06-20
回帖奖励+ 10
const QVector<QString> ClassName::typeVec
{
"1"
"2"
"3"
}

类型的const去掉就好了。QVector容器里面的类型,如果不是指针,如const char*,加了const,没有意义
离线介农酥

只看该作者 2楼 发表于: 2022-06-20
回 realfan 的帖子
realfan:const QVector<QString> ClassName::typeVec
{
"1"
"2"
"3"
....... (2022-06-20 09:38) 

为什么没有意义,在问这个问题之前,我也想过,不过没想明白,你看啊:

外面的const,说明typeVec是不能改的,QVector是一个类,这个类是const,说明整个类是不能改的,确实里面的const没啥意义,我想我当时是把QVector看成是一个真正意义上的数组了,所以,认为,这typeVec是一个地址,外面的const使的这个地址不能边,然后里面的const就像是下面存在的内容(内存顺序排列),表示const不能变,类似于const int const a[],这么看确实是毫无意义哦,多谢指教!
快速回复
限100 字节
 
上一个 下一个