Автор: cheops (27.01.2007 в 03:06)
На самом деле cout - это объект и изначально следовало бы писать так
char *str = "Hello world!";
cout.write(str, strlen(str)); |
Однако C++ обладает уникальной возможностью перегрузки операторов. Т.е. любому оператору можно назначить новый смысл. Чтобы не писать неудобную конструкцию cout.write() взяли и переопределили оператор побитового сдвига << так, чтобы он выводил правый аргумент в стандартный поток stdout, а могли бы взять любой другой оператор (например, /) и перегрузить его, тогда вывод будет выглядеть так
Однако так стараются не делать и оставлять за операторами свой исконный смысл. Исключение сделано для операторов << и >> - уж больно хорошо подходят для демонстрации ввода и вывода. Вы для своего собственного класса можете тоже перегружать данные, например присваивать новые значения так
или перегрузить оператор + для сложения двух своих объектов
вместо того, чтобы использовать ненаглядную конструкцию
PS cout - это предопределённый объект стандартной библиотеки ввода-вывода IOStram.