使用shared_ptr向量重载ostream friend运算符

时间:2018-05-07 11:16:23

标签: c++ class shared-ptr friend

我试图将ostream运算符重载为类中的朋友来构建电路的组件,但是它会不断返回地址。

在文件" Circuit_classes.h"中的串联电路类中:

.additional-class

在文件" Circuit_classes.cpp":

friend ostream& operator<< (ostream& os, series_circuit const& myCircuit);

其中ostream& operator<<(ostream& os, series_circuit const& myCircuit){ os << "Output: " << myCircuit.frequency << endl; return os; } 在类头文件中定义为60。

在我的主程序中,&#34; AC Circuits.cpp&#34;

frequency

运行程序时在命令行中输出:

vector<shared_ptr<circuit>> circuit_vector;
circuit_vector.push_back(shared_ptr<circuit>(new series_circuit));
cout << circuit_vector[0] << endl;

1 个答案:

答案 0 :(得分:5)

cout << circuit_vector[0] << endl;

circuit_vector[0]会产生std::shared_ptr,这就是正在打印的内容。

您必须取消引用才能访问对象本身。

cout << *circuit_vector[0] << endl;