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

обработка исключений - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Ошибка в программе с классом http://www.cyberforum.ru/cpp-beginners/thread812125.html
Только начал изучать классы, написал программу, а она выводит несколько ошибок: #define lname 10 #include<iostream> using namespace std; class Tceh{ private: static int count; char name; char prod;
C++ Проблемы с шаблоном класса Здравствуйте, помогите пожалуйста понять в чем ошибка, пытаюсь написать шаблон класса векторов, но получаю следующее: 1>main.obj : error LNK2019: ссылка на неразрешенный внешний символ "public: __thiscall Array1_D<double>::~Array1_D<double>(void)" (??1?$Array1_D@N@@QAE@XZ) в функции _main 1>main.obj : error LNK2019: ссылка на неразрешенный внешний символ "public: __thiscall... http://www.cyberforum.ru/cpp-beginners/thread812122.html
где лучше реализовывать методы в классе или вне C++
читал где-то, что реализация метода в теле класса или вне его не одно и то же. так ли это и в чем разница?
Распространение функции на всю программу C++
Здравствуйте, помогите пожалуйста мне добиться нужного эффекта. Нужно, чтобы в моей программе пункт удаление записи распространялся на всю программу (а сейчас запись удаляется только когда активирован пункт удаление записи, а если потом посмотреть все записи, то удалённая запись обратно возвращается.). А также, как сделать, чтобы уже созданный список не перезаписывался при добавлении новой...
C++ Вычислить бесконечную сумму с заданной точностью http://www.cyberforum.ru/cpp-beginners/thread812102.html
Вычислить бесконечную сумму с заданной точностью E(E>0) . Считать, что требуемая точность достигнута, если вычислена сумма нескольких первых слагаемых, и очередное слагаемое оказалось по модуле меньше, чем , E — это и все последующие слагаемые можно уже не учитывать. Вычислить по формуле Посмотрите код: #include <iostream> #include <math.h> using namespace std;
C++ Инициализировать строку готовыми данными У меня в памяти есть адрес, где лежит строка. есть функция, которая возвращает мне указатель на эту строку. (вообще то это функция, возвращающая значение типа const StringBuffer& ) Мне хочется из этого указателя сделать переменную типа const char*, инициализированную этой строкой. Блин, не один день мучаюсь, и уже написал вопрос в три форума. Нельзя ли как то на минуточку отменить... подробнее

Показать сообщение отдельно
fuzzytoozy
8 / 8 / 1
Регистрация: 23.11.2012
Сообщений: 94
18.03.2013, 23:01     обработка исключений
Здравствуйте. В следующем коде, при запуске throw выдает ошибку "Exception object adress". Не понимаю почему. Подскажите пожалуйста.
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
80
81
82
83
84
85
86
87
88
89
90
#include <iostream>
using namespace std;
///////////////////////////////////////////
const int SIZE = 2;
//////////////////////////////////////////
template< class Sparrow >
class Queue
{
 private:
  int top,bot,ctr;
  Sparrow arr[SIZE];
 public:
 class full{};
 class empty{};
 Queue () : top(-1), bot(-1), ctr(0)
 { }
 void additem ( Sparrow Val );
  Sparrow dropval ( );
};
///////////////////////////////////////////
template<class Sparrow>
void Queue<Sparrow> :: additem ( Sparrow Val )
{
 ctr++;
 if( ctr > SIZE-1 )
 { ctr--; throw full(); }
 else
 arr[++bot] = Val;
}
//////////////////////////////////////////
template<class Sparrow>
Sparrow Queue<Sparrow> :: dropval( )
{
 ctr--;
 if( ctr < 0 )
 {ctr++; throw empty();}
 else
 {
  if ( top == bot )
  { int z = top; top = 0; bot = 0; return arr[z]; }
  else
  return arr[++top];
 }
}
////////////////////////////////////////////
int main ( int argc, char* argv[] )
{
 
 Queue<float> o1;
 char ans;
 float v1;
 
 while( ans != 'n' )
 {
 
  cout << " Press A to add a value" << endl;
  cout << " Press D to drop a value" << endl;
  cin >> ans;
 
   try
{
  switch( ans )
  {
   case 'a':
   cout << " Enter value: "<< endl;
   cin >> v1;
   o1.additem(v1);
   cout << " Value " << v1 << " added to the queue " << endl;
   break;
   case 'd':
   cout << " Value " << o1.dropval() << " extracted from the queue " << endl;
   break;
  }
}
  catch(Queue<float>::full)
  {
   cout << " Error! Queue is overfilled!";
  }
 
  catch( Queue<float>::empty )
  {
   cout << " Error! Queue is empty! ";
  }
 
  cout << " Continue?(Y/N): " << endl;
  cin >> ans;
 }
 system("PAUSE");
 return 0;
}
Добавлено через 9 минут
может я try не там вставил или объект как то не так определил...

Добавлено через 1 час 48 минут
Собственно с этим кодом та же ситуация. При запуске throw - та же ошибка:
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
#include <iostream>
#include <process.h>
using namespace std;
const int SZ = 100;
template<class R>
class safearray
{
 private:
  R arr[SZ];
 public:
  class full{};
  class empty{};
  R& operator[]( int n )
  {
   if ( n < 0 )
   throw empty();
   else if ( n >= SZ )
    throw full();
    return arr[n];
  }
};
////////////////////////////////////////
int main ( int argc, char* argv[] )
{
 
 
try
{
 safearray<float> o1;
 for ( int j = 0; j < SZ+2; j++ )
{
 o1[j] = j * 10.0;
}
float temp;
for ( int j = 0; j < SZ; j++ )
{
 temp = o1[j];
cout << " Element "<< j << " equal " << temp << endl;
}
}
catch(safearray<float>::full)
{
 cout << " Incorrect index!( Too Big ) " << endl; exit(1);
}
catch(safearray<float>::empty)
{
 cout << " Incorrect index!(Negative) " << endl; exit(1);
}
system("PAUSE");
return 0;
}
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 19:10. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru