Форум программистов, компьютерный форум CyberForum.ru

Что со строкой вывода? - C++

Восстановить пароль Регистрация
 
Dimka-novitsek
14 / 14 / 0
Регистрация: 26.04.2012
Сообщений: 1,091
14.10.2013, 23:00     Что со строкой вывода? #1
C++
1
cout << "Function One. Roturning,,,"<<theCat<<"theCat\n";
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
14.10.2013, 23:00     Что со строкой вывода?
Посмотрите здесь:

C++ Операции со строкой
работа со строкой C++
C++ Работа со строкой
Операторы ввода-вывода(Что не так?) C++
C++ Что означает L и _T перед строкой?
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
coloc
погромист
 Аватар для coloc
409 / 245 / 15
Регистрация: 27.08.2012
Сообщений: 550
Завершенные тесты: 1
14.10.2013, 23:03     Что со строкой вывода? #2
Мои екстрасенсорные способности говорят мне, что theCat - функция. Да? Тогда ты выводишь ее адрес
Dimka-novitsek
14 / 14 / 0
Регистрация: 26.04.2012
Сообщений: 1,091
14.10.2013, 23:06  [ТС]     Что со строкой вывода? #3
C++
1
2
3
4
5
6
// Функция FunctionOne, передача как значения
SimpleCat Function0ne(SimpleCat theCat)
 {
cout << "Function One. Roturning,,,"<<theCat<<"theCat\n";
return theCat;
 }
Tulosba
:)
Эксперт С++
4378 / 3221 / 297
Регистрация: 19.02.2013
Сообщений: 9,044
14.10.2013, 23:07     Что со строкой вывода? #4
Use parentheses, Luke!
Dimka-novitsek
14 / 14 / 0
Регистрация: 26.04.2012
Сообщений: 1,091
14.10.2013, 23:08  [ТС]     Что со строкой вывода? #5
\проги\estce_sprobuem\estce_sprobuem\sprobuem.cpp(57): error C2679: бинарный "<<": не найден оператор, принимающий правый операнд типа "SimpleCat" (или приемлемое преобразование отсутствует)

Добавлено через 39 секунд
Чего- парэнтэсис?
Tulosba
:)
Эксперт С++
4378 / 3221 / 297
Регистрация: 19.02.2013
Сообщений: 9,044
14.10.2013, 23:09     Что со строкой вывода? #6
Цитата Сообщение от Dimka-novitsek Посмотреть сообщение
Что со строкой вывода?
И, кстати, что с ней? Экстрасенс, видимо, промахнулся.

Добавлено через 50 секунд
Цитата Сообщение от Dimka-novitsek Посмотреть сообщение
error C2679: бинарный "<<": не найден оператор
Для класса SimpleCat не определен оператор <<
Dimka-novitsek
14 / 14 / 0
Регистрация: 26.04.2012
Сообщений: 1,091
14.10.2013, 23:11  [ТС]     Что со строкой вывода? #7
Да, я вначале плохо написал.

Добавлено через 53 секунды
Как он не определен? Что это значит? как его определить?
Folko
 Аватар для Folko
265 / 253 / 7
Регистрация: 27.09.2013
Сообщений: 877
Записей в блоге: 1
14.10.2013, 23:13     Что со строкой вывода? #8
Dimka-novitsek, я что то не понял. Вы хотите вывести собственный тип данных SimpleCat?
Выводить (если я правильно помню) можно только символы, строки, но не классы
Tulosba
:)
Эксперт С++
4378 / 3221 / 297
Регистрация: 19.02.2013
Сообщений: 9,044
14.10.2013, 23:15     Что со строкой вывода? #9
Цитата Сообщение от Dimka-novitsek Посмотреть сообщение
как его определить?
C++
1
2
3
4
5
ostream& operator<<( ostream& o, const SimpleCat& c )
{
   o << c.someField; // Выводим поля объекта SimpleCat 
   return o;
}
И наверное его нужно сделать другом класса.
coloc
погромист
 Аватар для coloc
409 / 245 / 15
Регистрация: 27.08.2012
Сообщений: 550
Завершенные тесты: 1
14.10.2013, 23:18     Что со строкой вывода? #10
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include <iostream>
 
class cat
{
    friend std::ostream& operator<<(std::ostream &out, const cat &b) {
        out << b.meow;
        return out;
    }
    
    public:
    int meow;
};
 
int main() {
    cat dog;
    dog.meow = 101;
    std::cout << dog << " " << dog;
    return 0;
}
Dimka-novitsek
14 / 14 / 0
Регистрация: 26.04.2012
Сообщений: 1,091
15.10.2013, 00:44  [ТС]     Что со строкой вывода? #11
Вся программа

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
// Листинг 9.10.
 // Передача указателей на объекты
 
#include <string> 
#include <iostream> // для объекта cout
using namespace std;
 
#include<iomanip>
//Этот файл содержит большую часть манипуляторов C++. Если вы не знаете, что такое манипулятор, не беспокойтесь. Просто подключите это файл вместе с iostream, хуже не станет.
#include<fstream> 
//Подключается при работе с файлами.
 
 
 class SimpleCat
 {
public:
SimpleCat (); // конструктор
SimpleCat(SimpleCat&); // конструктор-копировщик
 ~SimpleCat(); // деструктор
 };
 
 SimpleCat::SimpleCat()
 {
cout << "Simple Cat Constructor...\n";
 }
 SimpleCat::SimpleCat(SimpleCat&)
 {
cout << "Simple Cat Copy Constructor...\n";
 }
 
 SimpleCat::~SimpleCat()
 {
cout << "Simple Cat Destructor...\n";
 }
 
 SimpleCat Function0ne (SimpleCat theCat);
 SimpleCat* FunctionTwo (SimpleCat *theCat);
 
 int main()
 {
cout << "main()SimpleCat Frisky;\n";
SimpleCat Frisky;     // Вызываем конструктор раз.
 
cout << "main()FunctionOne(Frisky);\n";
Function0ne(Frisky);// Функция FunctionOne, передача как значения. Конструктор копирования вызывается дважды!!!
//И деструктор дважды!!! И функция не распечатывает сообщения коут!!!!!
cout << "main()FunctionTwo(&Frisky);\n";
FunctionTwo(&Frisky); // Функция FunctionTwo, передача как ссылки. Не вызываются конструктор-деструктор!!!
//Печатается коут из функции!!!
system("pause  ");
return 0;
 }
 
// Функция FunctionOne, передача как значения
SimpleCat Function0ne(SimpleCat theCat)
 {
cout << "Function One. Roturning,,,"<<theCat<<"theCat\n";
return theCat;
 }
 
 // Функция FunctionTwo, передача как ссылки
 SimpleCat* FunctionTwo (SimpleCat *theCat)
 {
cout << "Function Two. Returning..."<<theCat;"\n";
return theCat;
 }
Добавлено через 16 минут
Наверное, к черту вывод.

Добавлено через 22 минуты
Что тогда выдают эти функции в ретурне? Что в них передается? Я все же понимаю, как передать или выдать переменную, но обьект для меня остается чем то не до конца понимаемым. Обьект Frisky- его можно как бы соотнести с какой-либо переменной, каким-то числовым или иным значением?
Folko
 Аватар для Folko
265 / 253 / 7
Регистрация: 27.09.2013
Сообщений: 877
Записей в блоге: 1
15.10.2013, 01:34     Что со строкой вывода? #12
Dimka-novitsek, я не эксперт, но объект это вроде как совокупность значений и функций. То есть он выводит конкретно значение объекта. Как пример:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
struct cube {
int w;
int h;
int d;
};
 
cube functionA (cube x)
{
return x;
}
 
cube z; // делаем объект типа cube
z.w = 4; // даем ему значения
z.h = 3;
cube t = functionA (z); // теперь t.w = 4, а t.h = 3
Если я ошибаюсь, поправьте пожалуйста
coloc
погромист
 Аватар для coloc
409 / 245 / 15
Регистрация: 27.08.2012
Сообщений: 550
Завершенные тесты: 1
15.10.2013, 19:05     Что со строкой вывода? #13
Dimka-novitsek, Во-первых, программа не скомпилируется, потому что нету перегруженного оператора левого битового сдвига. Ты вообще читал о перегрузке? Во-вторых, оформляй нормально код, здесь люди читать это будут, если хотят тебе чем-то помочь.
Цитата Сообщение от Dimka-novitsek Посмотреть сообщение
Обьект Frisky- его можно как бы соотнести с какой-либо переменной
Есть класс int. Есть код int a; Переменная a является екземляром класса int.
Такая же аналогия с котом
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
15.10.2013, 22:49     Что со строкой вывода?
Еще ссылки по теме:

C++ непонятно со строкой
Что из себя представляет допустим поток ввода/вывода C++
C++ Что значит "%d %d\n" в функции вывода в файл fprintf(f, "%d %d\n", i, j);

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

Или воспользуйтесь поиском по форуму:
Tulosba
15.10.2013, 22:49     Что со строкой вывода?
  #14

Не по теме:

Цитата Сообщение от coloc Посмотреть сообщение
нету перегруженного оператора левого битового сдвига
это где Вас такому названию научили?

Yandex
Объявления
15.10.2013, 22:49     Что со строкой вывода?
Ответ Создать тему
Опции темы

Текущее время: 12:02. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru