[英]Overloading ostream friend operator with shared_ptr vector
我试图以类的朋友的身份重载ostream运算符以构建电路的组件,但是它不断返回地址。
在“ Circuit_classes.h”文件的串联电路类中:
friend ostream& operator<< (ostream& os, series_circuit const& myCircuit);
在文件“ Circuit_classes.cpp”中:
ostream& operator<<(ostream& os, series_circuit const& myCircuit){
os << "Output: " << myCircuit.frequency << endl;
return os;
}
在类头文件中将frequency
定义为60。
在我的主程序中,“ AC Circuits.cpp”
vector<shared_ptr<circuit>> circuit_vector;
circuit_vector.push_back(shared_ptr<circuit>(new series_circuit));
cout << circuit_vector[0] << endl;
运行程序时在命令行中输出:
0325E180
cout << circuit_vector[0] << endl;
circuit_vector[0]
产生一个std::shared_ptr
,它是正在打印的内容。
您必须取消引用它才能到达对象本身。
cout << *circuit_vector[0] << endl;
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.