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

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

Войти
Регистрация
Восстановить пароль
 
Leeto
 Аватар для Leeto
7 / 7 / 0
Регистрация: 23.12.2011
Сообщений: 372
Записей в блоге: 1
#1

как увидеть cout от диконстрактора (компелятор MS V C++ 2010 express ) - C++

17.05.2012, 15:04. Просмотров 301. Ответов 3
Метки нет (Все метки)

Кочется увидеть cout от деконстрактора

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
// .h
 
#ifndef SILLY_H
#define SILLY_H
 
 
#include <iostream>
 
using namespace std; 
 
class silly 
{
    public: 
        silly();
        ~silly();
        
};
        
 
#endif
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
//.cpp
#include "silly.h"
#include <iostream>
using namespace std; 
 
 
silly :: silly () 
{
        cout << "i'm costructor"<< endl;
}
 
silly::~silly()
        {
        cout << "I'm deconstructor" <<endl;
        }
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
//main.cpp 
#include "silly.h"
#include <iostream>
 
using namespace std; 
 
int main () {
 
 
silly so; 
cout << "omg wtf " << endl;
 
 
system ("pause");
 
}
cout от констрактора выводится, а от диконстрактора нет. Скажите, пожалуйста, почему ? Мож дело в настройках компилятора ??? заранее спасибо ! Когда я создаю проект я пользуюсь Win32 console App and empty project.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
17.05.2012, 15:04     как увидеть cout от диконстрактора (компелятор MS V C++ 2010 express )
Посмотрите здесь:

Visual Studio 2010 Express C++
visual c++ 2010 express edition C++
Не получается работать с cout в MS Visual C++ 2010 Express C++
microsoft visual studio 2010 express C++
как сделать в MS VS 2010 express output не в консоль в output windows C++
C++ ключ к MS VS 2010 Express
C++ Не работают cin и cout. iostream included, но пишет, что это неизвестные идентификаторы. VC++ 2008 express
Как добавить файл ресурс в Studio Express 2010 C++
начинаю работу с visual C++ 2010 express C++
При переводе программы с VS c++ 6.0 на VS c++ 2010 express выходят ошибки, как их исправить? C++
Нарисовать сетку в MS VC++ 2010 Express C++
Ошибка в Visual Studio 2010 Express C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
zss
Модератор
Эксперт С++
 Аватар для zss
6124 / 5727 / 1852
Регистрация: 18.12.2011
Сообщений: 14,631
Завершенные тесты: 1
17.05.2012, 15:25     как увидеть cout от диконстрактора (компелятор MS V C++ 2010 express ) #2
Потому, что деструктор выполняется перед выходом из main(),
т.е. после system("pause");
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#include <iostream>
using namespace std;
class silly 
{
    public: 
      silly();
      ~silly();
};
silly :: silly () 
{
   cout << "i'm costructor\n"<< endl;
}
silly::~silly()
 {
    cout << "I'm deconstructor\n" <<endl;
 }
int main ()
{
   silly* so=new silly; 
   delete so;
    cout << "omg wtf " << endl;
    system ("pause");
}
diagon
Higher
 Аватар для diagon
1921 / 1187 / 49
Регистрация: 02.05.2010
Сообщений: 2,925
Записей в блоге: 2
17.05.2012, 15:29     как увидеть cout от диконстрактора (компелятор MS V C++ 2010 express ) #3
Деструктор(да, он так называется) вызывается при выходе из области видимости, в данном случае в конце main'a. Т.е. у вас ставится пауза, вы снимаете с паузы, и уже тогда выводится эта надпись.
Можно сделать так
C++
1
2
3
4
5
6
7
int main()
{
   {
      silly s;
   }
   system("pause");
}
Leeto
 Аватар для Leeto
7 / 7 / 0
Регистрация: 23.12.2011
Сообщений: 372
Записей в блоге: 1
17.05.2012, 15:32  [ТС]     как увидеть cout от диконстрактора (компелятор MS V C++ 2010 express ) #4
Цитата Сообщение от zss Посмотреть сообщение
Потому, что деструктор выполняется перед выходом из main(),
т.е. после system("pause");
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#include <iostream>
using namespace std;
class silly 
{
    public: 
      silly();
      ~silly();
};
silly :: silly () 
{
   cout << "i'm costructor\n"<< endl;
}
silly::~silly()
 {
    cout << "I'm deconstructor\n" <<endl;
 }
int main ()
{
   silly* so=new silly; 
   delete so;
    cout << "omg wtf " << endl;
    system ("pause");
}
А можно как ниб без new and delete?
Я почему озадачился... В этом туториале (ниже ) там все хип хоп с cout- ом. Парень даже system ("pause ") не юзает
http://www.youtube.com/watch?v=4P4Im...ure=plpp_video

Добавлено через 2 минуты
Цитата Сообщение от diagon Посмотреть сообщение
Деструктор(да, он так называется) вызывается при выходе из области видимости, в данном случае в конце main'a. Т.е. у вас ставится пауза, вы снимаете с паузы, и уже тогда выводится эта надпись.
Можно сделать так
C++
1
2
3
4
5
6
7
int main()
{
   {
      silly s;
   }
   system("pause");
}
Огромное спасибо!
Yandex
Объявления
17.05.2012, 15:32     как увидеть cout от диконстрактора (компелятор MS V C++ 2010 express )
Ответ Создать тему
Опции темы

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