我正在尝试为常量对象创建一个非常量指针的非常量数组。我的想法是,我应该能够改变数组中指针的含义,但它们指向的是一个常量对象。
我在定义这个数组时遇到了问题(它是一个指向Person
类型对象的指针数组 - 一个自定义类)。我目前正在声明这样的数组:
Person* people[10];
此外,没有明确指出指针指向const人。所以当我做这样的事情时:
people[i] = &p;
其中p
是对const Person
类型对象的引用,但它失败了。
答案 0 :(得分:9)
如果有疑问......请使用typedef(因为它是显式的,添加更专业的语义并完全避免混淆):
typedef const Person* PersonCPtr;
PersonCPtr people[10];