Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/136.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ (c+;+;14)操作员<&书信电报;智能指针向量的重载未按预期工作_C++_Operator Overloading_C++14_Smart Pointers - Fatal编程技术网

C++ (c+;+;14)操作员<&书信电报;智能指针向量的重载未按预期工作

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

我在这里做错了什么,但我不知道是什么。我希望程序的输出是“tacos!”,但我得到的是一个内存位置


我正在尝试使用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);