2016-07-25 97 views
-2

我只是問你是否可以創建自己的cout < <類似於C++中的對象。大多數人會將我的問題與運營商超載相混淆< <。但是,不,我不想實現我自己的< <運算符,以便當用戶打印我的對象時,我可以控制他們得到的東西。但基本上我想要實現這樣的:如果如何爲自己的C++ cout <<像對象

something << some_given << some_end; 

不知道這是可能的,但標準庫中創建的COUT了iostream,所以我的心說「爲什麼不呢?」。所以我問了stackoverflow。幫助將不勝感激! :)

+1

我不知道你在問什麼。 –

+0

在這種情況下,「東西」是什麼? –

+0

我想op想做一個'cout'對象,但不是'cout'。我想op知道如何在不同的對象上使用'operator <<'(例如輸出到文件等),但是想要創建一個不是'cout'的cout。 – Tas

回答

3

我不知道我是否正確interpretted你的問題,但我認爲你想重載運算符類< <所以這就是我在這裏

class MyClass { 
    public: 
    MyClass() = default; 
    MyClass& operator<<(int input) { 
     //do something with input 
     return *this; 
    } 
} 

你會使用這樣的;

MyClass myObject; 
myObject << 42; 
//the function would have been called 
+0

謝謝多數民衆贊成我想要的! – amanuel2

+2

最好的方法是使'operator <<'返回引用,像這樣:'MyClass&operator <<(...);'這樣你就可以在一行中寫入幾個<< myObject << 42 << 37 << 14;'。 –