簡體   English   中英

用shared_ptr向量重載ostream朋友運算符

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM