C++ Uygulama Örnekleri : Friend ostream&

Bu yazımızda C++’ta hem friend kullanımına hem de operatör overloading’e ait bir uygulamaya yönelik bir örnek görüntüleyeceğiz. Öncelikle projeyi Qt IDE’sini kullanarak yazacağım için Qt üzerinden proje oluşturmamız gerekmekte Non-qt project kısmından Plain C++ Application diyoruz ve bizi aşağıdaki gibi bir kod karşılıyor. (Aslında bu tarz yerlerde IDE söylemek yerine hangi derleyiciyi kullandığımızı söylemek daha doğru ama…)

#include <iostream>
using namespace std;

int main(){
    cout << "Hello World!" << endl;
    return 0;
}

Burada ki yazının tamamen not amaçlı olduğunu unutmayınız. C++’ı gömülü sistemlerde kullanmak amacıyla öğrenmeye çalıştığım için örneklerim bunun üzerinden olacak. Öncelikle bir sınıf oluşturacağız. Sınıfımızın adı sensör olsun ve sensör id’si ve protokole ilişkin 2 adet parametre alsın.

#include <iostream>
#include <queue>

using namespace std;

class Sensor {
    int id;
    string protocol;

public:
    Sensor(int id, string protocol) : id(id), protocol(protocol) {}
    friend ostream& operator << (ostream&, Sensor&); //
    };

ostream& operator << (ostream& o, Sensor& sensorObj) {
    o << sensorObj.id << " ID'li sensörün haberleşme protokolü: " << sensorObj.protocol;
    return o;
}

int main(){

    Sensor sensor1(001,"SPI");
    cout << sensor1;

}
Çıktı:
1 ID'li sensorun haberlesme protokolu: SPI