Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / C++ [игнор отключен] [закрыт для гостей] / Qt3 / 10 сообщений из 10, страница 1 из 1
06.12.2006, 10:23
    #34179534
Zmeishe
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Qt3
Недавно перешёл с С++Builder на qt3.

Никак не разберусь со следующими вопросами:
1. какие в QT аналоги блоков?
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
try
{ 
 ...
} catch(Exception &e){
 ...
}

и 

try
{
 ...
}
__finally
{
 ...
}

2. какой аналог __property?
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
class MyClass
{
protected:
  int FValue;
  void __fastcall SetValue(int Val);

public:
   MyClass() {};
   ~MyClass() {};

__published:

  __property int Value={read=FValue, write=SetValue, default= 1 };

};

void __fastcall MyClass::SetValue(int Val)
{
 Value = Val;
}
...
Рейтинг: 0 / 0
06.12.2006, 10:28
    #34179550
Akh
Akh
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Qt3
В Qt не может не быть try catch, т.к. это стандарт С++, а не дополнения среды.
...
Рейтинг: 0 / 0
06.12.2006, 10:34
    #34179568
Zmeishe
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Qt3
AkhВ Qt не может не быть try catch, т.к. это стандарт С++, а не дополнения среды.

Т.е. c++, используемый в Qt - не отвечает стандарту? Или я всё-таки могу использовать эти блоки?
Дело в том, что в книге Шлее приведена иерархия классов только от QWidget.
Про Exception там нет.
...
Рейтинг: 0 / 0
06.12.2006, 10:41
    #34179585
Akh
Akh
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Qt3
Zmeishe AkhВ Qt не может не быть try catch, т.к. это стандарт С++, а не дополнения среды.

Т.е. c++, используемый в Qt - не отвечает стандарту? Или я всё-таки могу использовать эти блоки?
Дело в том, что в книге Шлее приведена иерархия классов только от QWidget.
Про Exception там нет.

Не знаю, что за Exception, но в stl, если не напутал, используется std::exception. В ipbb IBPP::Exceptinon и все от него производные.

Когда ты вызываешь функцию, которая может произвести исключительную ситуацию, тебе желательно знать, какого типа она будет.
...
Рейтинг: 0 / 0
06.12.2006, 10:47
    #34179609
Zmeishe
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Qt3
TException и все производные от него - это то, к чему я привык работая в C++Builder.
Если не затруднит, приведите пример этих блоков для qt.
...
Рейтинг: 0 / 0
06.12.2006, 10:54
    #34179634
Akh
Akh
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Qt3
ZmeisheTException и все производные от него - это то, к чему я привык работая в C++Builder.
Если не затруднит, приведите пример этих блоков для qt.

То что с двойным подчеркиванием это, вроде, примочка билдера. Есть в Qt аналоги или нет - я не знаю.

для try catch просто меняшь тип исключительной ситуации:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
bitset< 3 > bs;


try {
   bs.set( 5 ,  1 ) ;
} catch (std::exception &e) {
   cout << e.what(); 
}


...
Рейтинг: 0 / 0
06.12.2006, 11:10
    #34179684
Zmeishe
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Qt3
В Билдере это вот что.
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
try
{

 ...
}
__finally
{
 /* 
 сюда он зайдёт по любому.
 Будет исключение или не будет. Всё-равно зайдёт.
 Удобно, если я в try {} выделил память. И её надо освободить не зависимо от того
 будет exception или не будет.
 А в catch он пойдёт, только в случае exception;
 */
}
...
Рейтинг: 0 / 0
06.12.2006, 11:23
    #34179735
Akh
Akh
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Qt3
В С++ нет финали.

Надо действовать по другому.

1. При исключительной ситуации ты можешь установить флаг и не вываливаться из функции. После блоков трай-катч по флагу можешь освобождать память.

2. Использовать смартпоинтеры (интелектуальные указатели). Но для этого надо познакомиться с ними. В этом форуме месяцок-другой назад обсуждалось.

И, вообще, можешь поискать обсуждение финали в С++, оно тоже было в этом форуме.

3. ...
...
Рейтинг: 0 / 0
06.12.2006, 11:28
    #34179755
Akh
Akh
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Qt3
В С++ нет финали.

Надо действовать по другому.

1. При исключительной ситуации ты можешь установить флаг и не вываливаться из функции. После блоков трай-катч по флагу можешь освобождать память.

2. Использовать смартпоинтеры (интелектуальные указатели). Но для этого надо познакомиться с ними. В этом форуме месяцок-другой назад обсуждалось.

И, вообще, можешь поискать обсуждение финали в С++, оно тоже было в этом форуме.

3. ...
...
Рейтинг: 0 / 0
06.12.2006, 18:13
    #34181388
Pasha_K
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Qt3
По QT надо читать тока офф-документацию, ибо на русский язык переводиться тока малость, и то авторы щас пошли не те, вечно намутят чё нить, что не разберёшься. Весь смак в официальной документации, там и все разясняеться по мелочам и примеров много! Так что если ещё кто-то не знает английский, то советую побыстрее его выучить.
...
Рейтинг: 0 / 0
Форумы / C++ [игнор отключен] [закрыт для гостей] / Qt3 / 10 сообщений из 10, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]