【发布时间】:2018-04-14 13:27:58
【问题描述】:
我是使用智能指针的新手,我正在尝试创建相同的指针,但出现错误。
class data{
private:
int ID;
public:
void setID(int a){
ID=a;
}
int getID(){
return ID;
}};
int main(){
data d*;
d=new data[30];
for(int i=0;i<30;i++){
(p+i)->setID(i);
}}
我尝试:
shared_ptr<data> sp( new data[30]);
for(int i=0;i<30;i++){
sp->setID(i)[i];
}
错误:数组下标的无效类型 'void[int]'|
shared_ptr<data> sp( new data[30]);
for(int i=0;i<30;i++){
(sp+i)->setID(i);
}
错误:“operator+”不匹配(操作数类型为“std::shared_ptr”和“int”)|
我该怎么做?
【问题讨论】:
标签: arrays c++11 object shared-ptr