2016-07-25 4 views
-2

Я просто спрашивал, можете ли вы создать свой собственный cout < < как объект в C++. большинство людей путают мой вопрос с перегрузкой оператора < <. Но нет, я не хочу реализовывать свой собственный оператор < <, так что, когда пользователи печатают мой объект, я могу контролировать, что они получают. Но в основном я хочу реализовать так:Как с вашим C++ cout << как объект

something << some_given << some_end; 

Не уверен, если это возможно, но iostream стандартной библиотеки создали COUT, так что мой ум говорит: «Почему нет?». Поэтому я попросил stackoverflow. Помощь будет оценена! :)

+1

Я понятия не имею, что вы просите. –

+0

Что в этом случае «что-то»? –

+0

Я думаю, что op хочет создать объект 'cout', но не' cout'. Я думаю, что op понимает, как использовать 'operator <<' для разных объектов (например, вывод в файл и т. Д.), Но хочет сделать 'cout', который не является' cout'. – Tas

ответ

3

Я не уверен, если я ваш вопрос интерпретируются с правильно, но я думаю, что вы хотите класс с перегруженным оператором < < так это то, что я есть здесь

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 <<' return reference, например: 'MyClass & operator << (...);' поэтому вы сможете написать несколько << в одной строке: 'myObject << 42 << 37 << 14; '. –

Смежные вопросы