C++ (c+;+;14)操作员<&书信电报;智能指针向量的重载未按预期工作
我在这里做错了什么,但我不知道是什么。我希望程序的输出是“tacos!”,但我得到的是一个内存位置C++ (c+;+;14)操作员<&书信电报;智能指针向量的重载未按预期工作,c++,operator-overloading,c++14,smart-pointers,C++,Operator Overloading,C++14,Smart Pointers,我在这里做错了什么,但我不知道是什么。我希望程序的输出是“tacos!”,但我得到的是一个内存位置 我正在尝试使用C++14功能。在这个程序中,我试图使用智能指针并重载std::shared\u ptr::get()返回一个T*,但是您的操作符要注意cout的类型: cout << month.my_tacoTuesdays.at(0).get(); 你不需要.get()它们“auto*p=”在这里做什么作为一个条件?@USERID\u UNK:它声明并初始化一个tacoTuesd
我正在尝试使用C++14功能。在这个程序中,我试图使用智能指针并重载
std::shared\u ptr::get()
返回一个T*
,但是您的操作符要注意cout
的类型:
cout << month.my_tacoTuesdays.at(0).get();
你不需要.get()
它们“auto*p=”在这里做什么作为一个条件?@USERID\u UNK:它声明并初始化一个tacoTuesdays*
(为了简洁起见,通过auto
),如果指针不为空,只需输入if
。@ildjarn,@povman,有没有办法获取cout@USERID\u UNK:当然,创建另一个操作符
cout << month.my_tacoTuesdays.at(0).get();
cout << *month.my_tacoTuesdays.at(0);
if (auto* p = month.my_tacoTuesdays.at(0).get()) {
cout << *p;
}
cout << month.my_tacoTuesdays.at(0).get();
cout << *month.my_tacoTuesdays.at(0);