【发布时间】:2019-01-27 05:35:03
【问题描述】:
void Create_moneys(shared_ptr<CoinMoney>* &ms){
int max = getSize(true);
for(size_t i = 0; i < max; ++i){
cout << "ms is : " <<typeid(ms[i]).name() << endl;
ms[i] = make_shared<CoinMoney>();
ms[i]->c50 = i+1;
ms[i]->c100 = i+2;
ms[i]->c500 = i+3;
}
}
int main(int argc, char* argv[]){
shared_ptr<CoinMoney> pm1[getSize(true)];
Create_moneys(pm1); // error
for(auto p : pm1)
CoinMoney_Print(*p);
return 0;
}
我收到此错误“无法将 ~ 类型的非常量左值引用绑定到类型的右值
我该如何解决这个问题?
【问题讨论】:
-
为什么
Create_moneys()接受对指针的引用?这不像你在修改它...... -
"auto& ms" 可能,但 "shared_ptr
* ms" 是不可能的 我不明白这个