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

Область видимости переменной пользовательского класса - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Задача на структуры http://www.cyberforum.ru/cpp-beginners/thread698168.html
Мне нужно решить одну задачу, написал код все работает нормально кроме одной функции. Вот задание: Описать структуру с именем ITINERARY, которая содержит следующие поля:  FIRST - название начального пункта маршрута;  FINAL - название конечного пункта маршрута;  NUM - номер маршрута.  DISTANCE - расстояние в километрах.
C++ Олимпиадная задача - движение фишки Есть вот такая задача: /*Фишка может двигаться по полю длины N только вперед. Длина хода фишки не более K. Найти число различных путей, по которым фишка может пройти поле от начала до конца. Пример. N=3, K=2 Возможные пути: 1,1,1 1,2 http://www.cyberforum.ru/cpp-beginners/thread698167.html
Ввести с консоли число в 16-ричной системе счисления, преобразовать его в битовое поле за счёт использования объединения C++
Задание:Разработать битовое поле, описывающее состояния элементов прибора. Ввести с консоли число в 16-ричной системе счисления, преобразовать его в битовое поле за счёт использования объединения. Вывести на консоль состояния элементов прибора, соответствующие состоянию битов во введённом числе. Варианты приборов и их элементов: ADSL модем. Элементы: DSL вкл/выкл, PPP вкл/выкл, Link вкл/выкл ...
Как зациклить и выйти в любой момент C++
#include "stdafx.h" #include "iostream" #include "math.h" #include "conio.h" #include "time.h" using namespace std; int _tmain(int argc, _TCHAR* argv)
C++ Вывод сочетания шаров http://www.cyberforum.ru/cpp-beginners/thread698155.html
Имеется задача: есть четыре шара пронумерованных 0, 1, 2, 3; вывести все сочетания шаров из 4 по 3 с возвратом и с учётом порядка. Если использовать такое решение (псевдокод): for (int i= 0; i++; i< 4 ) for (int j= 0; j++; j< 4 ) for (int k= 0; k++; k< 4 ) { printf ("%d %d %d\n", i, j, k); printf ("______________________\n"); } То вывод будет:
C++ Проверка при помощи вложенных блоков try Посчитать уравнение ( у=log4(x2-4)+1/x)при вводе х с клавиатуры, но должны выполнятся условия: 1. выражение считается в отдельной функции; 2. корректность ввода должна проверятся при помощи механизма перехвата исключений; 3. при выполнении обеспечить двухуровневую проверку двумя способами: -при помощи вложенных блоков try ; -путем перехвата исключений в основной программе и в функции что... подробнее

Показать сообщение отдельно
stawerfar
 Аватар для stawerfar
141 / 55 / 4
Регистрация: 14.12.2010
Сообщений: 347
Записей в блоге: 1
15.11.2012, 04:02     Область видимости переменной пользовательского класса
Всем привет!
Столкнулся с такой проблемой:
Создал клас и в нем класс исключений
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
class A
{
  char* pt;
  public:
    class ERR
   {
      char* err;
      public:
        ERR(const char* er)
        {
            err  = new char[strlen(er)+1];
            *err = 0;
             strcpy(err,er);
         }
        ~ERR(void)
        {if(err)delete []err;}
       const char* cerr(void)
       {return err;}
   }; /*class ERR*/
  A(void)
  {
    try
    {
       pt = new char [1000000000];
      *pt = 0; 
    }
    catch(std::bad_alloc)
   {trhow A::ERR("ERROR BAD_ALLOC CLASS A");}
  }
 ~A(void)
  {if (pt)delete []pt;}
};/*class A*/
Такая конструкция нормально работает когда объект класса создается в локальной области видимости и его можно юзать как то так
C++
1
2
3
4
5
6
 try
{
   A a;
}
catch(A::ERR er)
{std::cerr << er.cerr() << std::endl;}
Но что делать если мы его объявляем в Глобальной области видимости?
У меня возникают ошибка(точнее варинг) во время выполнения на оси Win 7 в VS2012 такого плана(смотри ниже).
От этого хочется как нибудь избавиться ну например можно ли как нибудь узнать где под эту переменую (стек или куча) было выделено место и таким образом определить её область видимости и тогда не вызывать throw а делать что то ещё.... ну или что то в этом духе.
Кто знает скажите как это лечить?!
Миниатюры
Область видимости переменной пользовательского класса  
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 15:45. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru