【发布时间】:2018-05-07 11:16:23
【问题描述】:
我试图重载 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
【问题讨论】:
-
什么是
circuit_vector[0]?您operator<<函数采用什么参数?这两种类型是一样的吗? -
我已经接受了DeiDei的回答,但供参考:电路向量[0]是.push_back添加的series_circuit类,它是从基础电路类派生的类。运算符
-
series_circuit与circuit有什么关系? -
series_circuit是基类circuit的派生类
标签: c++ class shared-ptr friend