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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
 
ninja2
231 / 187 / 7
Регистрация: 26.09.2012
Сообщений: 2,018
Завершенные тесты: 1
#1

конструктор и деструктор для cout - C++

02.03.2013, 17:17. Просмотров 1068. Ответов 21
Метки нет (Все метки)

Здарова! нужно решить задачу:
есть код:
C++
1
2
3
4
int main()
{
   cout <<"Hellow world"<<endl;
}
нужно без модифицирования функции main заставить чтобы она выводила

razraz
Hellow world
dvadva

вообщем незнаю чо и делать это видемо нужно както создать конструктор и деструктор для объекта cout хелп?
0
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
02.03.2013, 17:17
Здравствуйте! Я подобрал для вас темы с ответами на вопрос конструктор и деструктор для cout (C++):

Дописать конструктор и деструктор для класса - C++
Помогите пожалуйста написать конструктор копии и деструктор, а также вызвать их, чтобы деструктор выводил на экран &quot;работает&quot; #include...

Для класса задать конструктор и деструктор - C++
Ребята,нужна помощь в написании программы. Для класса задать конструктор(для выделения памяти,открытия файлов,задания начальных значений...

Как выглядит конструктор и деструктор для vector ? - C++
Есть класс: class table_m { public: vector &lt;Item&gt; table; table_m(); }; Как будет выглядеть для него конструктор и...

Нужно ли прописывать конструктор и деструктор для чисто виртуального абстрактного класса - C++
Всем привет! Порылся в интернете, но не смог найти конкретного ответа на свой вопрос. Возможно я просто не смог грамотно сформулировать...

Конструктор инициализации, конструктор копирования, деструктор - C++
Я сделал почти задание по перегрузке операторов. Осталось одно, тоесть три: конструктор инициализации, конструктор копирования, деструктор....

Создать класс "Вектор" и реализовать конструктор по умолчанию, конструктор копирования и деструктор - C++
Всем доброго времени суток! нужна ваша помощь! нужно создать класс вектор и реализовать конструктор по умолчанию, копирования и...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Jupiter
Каратель
Эксперт С++
6554 / 3975 / 226
Регистрация: 26.03.2010
Сообщений: 9,273
Записей в блоге: 1
Завершенные тесты: 2
02.03.2013, 17:25 #2
как делать не надо
адаптируйте этот пример под себя, в ходе адаптации придет понимание почему так делать не надо
1
gray_fox
What a waste!
1520 / 1223 / 70
Регистрация: 21.04.2012
Сообщений: 2,560
Завершенные тесты: 3
02.03.2013, 17:34 #3
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
#include <iostream>
 
using std::cout;
using std::endl;
 
struct translit {
   translit() {
      cout << "razraz" << endl;
   }
   ~translit() {
      cout << "dvadva" << endl;
   }
} instance;
1
OhMyGodSoLong
02.03.2013, 18:00
  #4

Не по теме:

Предлагаю advanced challenge. Написать такую реализацию, чтобы

C++
1
2
3
4
int main()
{
    cout << "Hello" << " " << "World!";
}
выводило
Код
>>>
Hello World!
<<<
Grangmaster level — чтоб оно было reentrant и thread-safe.

1
ninja2
231 / 187 / 7
Регистрация: 26.09.2012
Сообщений: 2,018
Завершенные тесты: 1
02.03.2013, 18:00  [ТС] #5
мне нужно так как gray_fox показал без перегрузки, токо я никак не пойму как оно работает?
да мы определили новую структуру, да мы создали в ней конструктор и деструктор, да мы ее вроде сразу и инициализировали instanse, но как она выводит перед и вконце?

ладно я понял просто просто вначале срабатывает код инициализации структуры, и ее конструктор, а затем кода строчка cout вывел свое мы срабатывает деструктор
0
gray_fox
02.03.2013, 18:03
  #6

Не по теме:

Цитата Сообщение от ~OhMyGodSoLong~ Посмотреть сообщение
Предлагаю advanced challenge.
Эмм... и в чём подвох?)

1
ninja2
231 / 187 / 7
Регистрация: 26.09.2012
Сообщений: 2,018
Завершенные тесты: 1
02.03.2013, 18:07  [ТС] #7
В принципе старичок помог ты мне решить задачку которая решается за 5 минут, а я над ней бился несколько часов
0
ya_noob
_
201 / 145 / 9
Регистрация: 08.10.2011
Сообщений: 432
02.03.2013, 18:14 #8
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#include <iostream>
using std::endl;
using std::ostream;
 
struct Cout
{
    Cout() { std::cout << "razraz" << endl; }
    ~Cout() { std::cout << "dvadva" << endl; }
    ostream &operator<<( char *s ) { std::cout << s; return std::cout; }
} cout;
 
int main()
{
    cout <<"Hellow world"<<endl;
}
1
OhMyGodSoLong
~ Эврика! ~
1243 / 992 / 42
Регистрация: 24.07.2012
Сообщений: 2,002
02.03.2013, 18:14 #9
Цитата Сообщение от gray_fox Посмотреть сообщение

Не по теме:


Эмм... и в чём подвох?)

Не по теме:

Да я просто имел в виду не ваш вариант с хитрой инициализацией-деинициализацей статической переменной. А такой, чтоб если написать

C++
1
2
3
4
5
int main()
{
    cout << "Hello" << " " << "World!";
    cout << 42;
}
то вывело
Код
>>>
Hello World!
<<<
>>>
42
<<<
а не
Код
>>>
Hello World!42
<<<

2
gray_fox
What a waste!
1520 / 1223 / 70
Регистрация: 21.04.2012
Сообщений: 2,560
Завершенные тесты: 3
02.03.2013, 18:22 #10

Не по теме:

~OhMyGodSoLong~, понял.



Добавлено через 2 минуты
Цитата Сообщение от ninja2 Посмотреть сообщение
как оно работает
Глобальные объекты создаются до выполнения main, уничтожаются после.
1
ninja2
231 / 187 / 7
Регистрация: 26.09.2012
Сообщений: 2,018
Завершенные тесты: 1
02.03.2013, 18:31  [ТС] #11
Цитата Сообщение от gray_fox Посмотреть сообщение

Не по теме:

~OhMyGodSoLong~, понял.



Добавлено через 2 минуты

Глобальные объекты создаются до выполнения main, уничтожаются после.
да я понял, но они не глобальные а в пространстве std

Чуточку свой блог пропиарю создал пост по этой задаче http://www.kselax.ru/2013/03/prostenkaya-zadachka/

Ну как бложек для первого пойдет?
0
gray_fox
What a waste!
1520 / 1223 / 70
Регистрация: 21.04.2012
Сообщений: 2,560
Завершенные тесты: 3
02.03.2013, 18:36 #12
Цитата Сообщение от ninja2 Посмотреть сообщение
да я понял, но они не глобальные а в пространстве std
:/ Причём тут пространство имён std? instance - глобальный объект, создаётся до вызова ф-ии main (при создании выполняется тело соответствующего конструктора), уничтожается - после выполнения main (выполняется тело деструктора). Вот и всё)
1
ninja2
231 / 187 / 7
Регистрация: 26.09.2012
Сообщений: 2,018
Завершенные тесты: 1
02.03.2013, 18:39  [ТС] #13
Цитата Сообщение от gray_fox Посмотреть сообщение
:/ Причём тут пространство имён std? instance - глобальный объект, создаётся до вызова ф-ии main (при создании выполняется тело соответствующего конструктора), уничтожается - после выполнения main (выполняется тело деструктора). Вот и всё)
а ну да можно и глобально, то я тупанул.
0
gray_fox
02.03.2013, 19:52
  #14

Не по теме:

Вообщем, ничего лучше я не придумал)

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
67
68
69
70
71
72
73
74
75
76
77
78
79
#include <iostream>
 
 
struct cout_tag {} cout;
 
 
struct cout_impl_t {
   cout_impl_t()  {
      std::cout << ">>>" << std::endl;
   }
   cout_impl_t(cout_impl_t const&) {
      ++counter;
   }
   ~cout_impl_t() {
      if (counter == 0) {
         std::cout << "<<<" << std::endl;
      } else {
         --counter;
      }
   }
   
private:
   static std::size_t counter;
};
 
std::size_t cout_impl_t::counter(0);
 
 
typedef std::ios_base & (*ios_base_manipulator_t)(std::ios_base &);
typedef std::ostream &  (*ostream_manipulator_t )(std::ostream & );
 
 
template<typename Type>
cout_impl_t operator <<(cout_impl_t impl, Type const& type) {
   std::cout << type;
   return impl;
}
 
cout_impl_t operator <<(cout_impl_t impl, ostream_manipulator_t manipulator) {
   std::cout << manipulator;
   return impl;
}
 
cout_impl_t operator <<(cout_impl_t impl, ios_base_manipulator_t manipulator) {
   std::cout << manipulator;
   return impl;
}
 
template<typename C, typename T>
cout_impl_t operator <<(cout_impl_t impl, std::basic_ios<C, T> & (*manipulator)(std::basic_ios<C, T> &)) {
   std::cout << manipulator;
   return impl;
}
 
 
template<typename Type>
cout_impl_t operator <<(cout_tag, Type const& type) {
   return (cout_impl_t() << type);
}
 
cout_impl_t operator <<(cout_tag, ostream_manipulator_t manipulator) {
   return (cout_impl_t() << manipulator);
}
 
cout_impl_t operator <<(cout_tag, ios_base_manipulator_t manipulator) {
   return (cout_impl_t() << manipulator);
}
 
template<typename C, typename T>
cout_impl_t operator <<(cout_tag, std::basic_ios<C, T> & (*manipulator)(std::basic_ios<C, T> &)) {
   return (cout_impl_t() << manipulator);
}
 
 
int main()
{
    cout << "Hello" << " " << "World!" << std::endl;
    cout << 42 << std::endl;
}
http://ideone.com/6ioc1u

1
Nick Alte
Эксперт С++
1637 / 1009 / 119
Регистрация: 27.09.2009
Сообщений: 1,945
Завершенные тесты: 1
02.03.2013, 20:21 #15
Лучший ответ Сообщение было отмечено автором темы, экспертом или модератором как ответ
~OhMyGodSoLong~, а у нас будет свой cout, с блекджеком и тройными угловыми скобками!
5
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
02.03.2013, 20:21
Привет! Вот еще темы с ответами:

Для шаблонного класса перегрузить оператор присваивания, copy-конструктор, объекты cin и cout, оператор * - C++
Помогите в следующем: Для класса шаблона следует перегрузить оператор присваивания, конструктор копирования, бинарный оператор суммы «*»,...

Конструктор и деструктор - C++
Помогите к этой программе написать Конструктор и деструктор класса #include &lt;iostream&gt; using namespace std; class card { ...

Конструктор и деструктор - C++
Нужно чтобы деструктор отработал до завершения программы #include &quot;stdafx.h&quot; #include &lt;iostream&gt; #include &lt;cstring&gt; #include...

Конструктор и деструктор - C++
Всем привет.Вообщем передо мной стоит такая задача-Отобразить на экране время работы программы, используя конструктор и деструктор.В...


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
02.03.2013, 20:21
Ответ Создать тему
Опции темы

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