Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
 
Рейтинг 4.60/48: Рейтинг темы: голосов - 48, средняя оценка - 4.60
408 / 73 / 7
Регистрация: 29.01.2018
Сообщений: 1,140
1

Cout объект?

17.08.2019, 11:32. Показов 9626. Ответов 23
Метки нет (Все метки)

привет!


C++
1
2
3
4
5
6
7
8
class exem{
public:
 
 
int a=11;
std::cout << a << "\n";
 
};
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
class ex{
 
 
public:
 
int a=10;
 
ex(){
 
std::cout << a << "\n";
 
 
}
 
 
int main(){
 
ex obj; //  тут при создании объекта будет вызван конструктор , в котором отработает std::cout << "a";
return 0;
}
не могу понять, cout -это что? объект? функция, метод?

почему в если я попытаюсь создать объект класса exem , компилятор будет ругаться?

то есть
C++
1
2
3
4
int main(){
exem obj;
return 0;
}
почему std::cout << может работать только в методе или конструкторе класса?
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
17.08.2019, 11:32
Ответы с готовыми решениями:

cout и объект класса
Здравствуйте, форумчане. Есть класс, который реализует список. Необходимо, чтобы при записи...

При компиляции объект cout выводит ноль
Подскажите, что изменить в проге, чтоб ноль не выводился? #include &lt;conio.h&gt; #include...

Нюансы ввода/вывода в Си и C++ (функция printf() и объект std::cout)
Добрый день. Интересует следующий вопрос: каким именно образом работает команда форматирование...

Cout <<endl; Что это значит? Если ничего нету в cout?
Здравствуйте ! Обьясните пожалуйста что значит cout &lt;&lt;endl; если он используется после цикла...

23
408 / 73 / 7
Регистрация: 29.01.2018
Сообщений: 1,140
18.08.2019, 10:25  [ТС] 21
Цитата Сообщение от nd2 Посмотреть сообщение
в объекте класса нет никаких функций, только данные, под эти данные выделяется память и эти данные инициализирует конструктор. Сами функции класса являются общими для всех объектов класса и не являются частью объектов
тут да, Вы полностью правы.

и о чем это говорит в нашем случае?

Добавлено через 9 минут
Цитата Сообщение от TRam_ Посмотреть сообщение
И всё

давайте пожалуйста подведем итог.....


cout-это объект класса iostream.

operator- это метод класса.
<< -перегруженная функция из C языка.


так?
0
Модератор
1638 / 1092 / 487
Регистрация: 17.07.2012
Сообщений: 5,344
18.08.2019, 11:58 22
Лучший ответ Сообщение было отмечено pcmax как решение

Решение

Цитата Сообщение от pcmax Посмотреть сообщение
operator- это метод класса.
<< -перегруженная функция из C языка.
operator << это метод класса. Сам по себе << это обычный оператор. Только << работает с примитивными типами(с целыми числами, int например), а std::cout это объект класса, а не какой-то там int. И чтобы std::cout мог использовать оператор << в классе перегрузили этот оператор <<(по сути создали специальный метод в классе). Короче читайте про перегрузку операторов, а то будет еще 1001 вопрос...
1
nd2
3417 / 2797 / 1251
Регистрация: 29.01.2016
Сообщений: 9,426
18.08.2019, 20:20 23
Цитата Сообщение от pcmax Посмотреть сообщение
и о чем это говорит в нашем случае?
О том, что этого не будет:
Цитата Сообщение от pcmax Посмотреть сообщение
прошла бы инициализация полей, дошло бы дело до cout << и конструктор по умолчанию вызвал бы эту << как бы функцию.
1
Модератор
1643 / 778 / 141
Регистрация: 23.07.2018
Сообщений: 2,574
Записей в блоге: 3
23.08.2019, 13:07 24
Цитата Сообщение от pcmax Посмотреть сообщение
почему std::cout << может работать только в методе или конструкторе класса?
Везде, где по правилам языка возможно выражение такого типа.

C++
1
2
3
#include <iostream>
 
auto a = ! ( ::std::cout << 1 << "\n" );
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
23.08.2019, 13:07

Инкремент и объект "cout"
Всем привет. Столкнулся с такой непоняткой: int j=5; while (j++ &lt; 9) cout &lt;&lt; j++ &lt;&lt;...

Подскажите почему после первого cout программа не останавливается для ввода строки, а выводит второй cout
Подскажите почему после первого cout программа не останавливается для ввода строки, а выводит...

Разница между fwrite, cout и cout.write
Привет. Пытаюсь вывести букву 'ф' в консоль Windows 7, используя кодировку UTF-8. Для этого...

В чем разница std::cout и просто cout?
Ребят ,подскажите на простом языке для чайников . В чем разница std::cout и просто cout?


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
24
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.