Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 25.03.2011, 23:03   #1
zhenya.ya
Форумчанин
 
Регистрация: 29.11.2009
Сообщений: 142
Сообщение генерация исключения

Имеется: реализация сложения двух строк. В объединённой строке удаляю повторяющиеся символы ,если они есть, а иначе хочу сгенерировать исключение, что и делаю. Но почему оно не ловится?


Код:
class base
{
private:
	char* str;
	int size;
public:                              
	base(){size = 0; str = 0;}
    base( char *str1) 
	{ 
		size = strlen(str1);
		str = new char[size+1];
		strcpy(str,str1); 
	}
	base (const base &bs3);
	~base()
	{
		delete []str;
	}
	 void print() { cout<<str<<endl;}
	base operator + (base &bs);
	base &operator = (base &bs1);
};

base base::operator +(base &bs)
{
	base t;
	t.size = size + bs.size;
	t.str = new char [ t.size + 1 ];
	strcpy(t.str,str);
	if(strlen(strcat(t.str,bs.str)) > 20 ) throw 5;
int n=strlen(t.str);
for(int i=0;i < (n-1);i++)
{
if( t.str[i] == t.str[i+1])
	{
		for( int j=i; j < (n-1);j++)
			t.str[j] =t.str[j+1];
	t.str[n-1] = '\0';
	}
	else {float b=3.2;throw b;}
}
	return t;


}
base& base::operator =(base  &bs1)
{
	if(this != &bs1)
	{
		if(size != bs1.size)
		{
			delete []str;
			size = bs1.size;
			str = new char [ bs1.size + 1 ];
		}
		strcpy(str,bs1.str);
	}
	return *this;
}
base::base(const base &bs3)
{
	size = bs3.size;
	str = new char [ bs3.size +1 ];
	strcpy(str,bs3.str);
}
int main()
{
	char obj1[80],obj2[80];char obj3[80]; 
	try
	{
	cout<<" input:"<<endl;
	cin>>obj1;
	cin>>obj2;
	base s1(obj1),s2(obj2);
base s3;
	s3 =s1+s2;
	if(strlen(obj1) >10 || strlen(obj2) >10) throw err("\n leave for boards\n");
	s3.print();
	}
	catch( int arg ) { cout<<"\n so long"<<endl;}
catch( float arg ) { cout<<" without double symbols"<<endl;}
catch(err ob)
{
	cerr << ob.get_error();

}

	system("pause");
	return 0;
}
zhenya.ya вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
генерация исключения С++ zhenya.ya Помощь студентам 2 08.03.2011 02:08
Исключения C++ Impuls1989 Помощь студентам 2 04.03.2011 00:51
Исключения не работают Syltan Общие вопросы по Java, Java SE, Kotlin 1 09.12.2010 09:17
Исключения yurik1982 Фриланс 9 16.02.2010 00:34
Исключения Rifler Общие вопросы Delphi 5 12.11.2008 00:29