Объявление типа
Участников: 2
FreeBasic :: Программирование :: Общее
Страница 1 из 1
Объявление типа
Мне нужно создать два класа (хотя, это, конечно, не совсем класс...), причем в первом классе содержится указатель на объект второго класса, а во втором объекте - указатель на объект первого класса. Естественно, что подобная конструкция не компилится (так как второй класс во время определения первого еще не определен). Можно как-нибудь определить объект до его "implementation"? Что-то вроде этого:
Или все же придется определять в одном из классов any ptr?
- Код:
class cl2;
class cl1
{
cl2* ptr;
};
class cl2
{
cl1* ptr;
};
Или все же придется определять в одном из классов any ptr?
DiG. GeRR- Сообщения : 101
Дата регистрации : 2009-01-30
Возраст : 32
Откуда : Рудный, Казахстан
Re: Объявление типа
В C++ есть такая возможность.
Сообщить компилятору, что такой-то класс будет определён позже.
Но тут... Не знаю. Сейчас посмотрю.
Мне приходилось делать any ptr.
Сообщить компилятору, что такой-то класс будет определён позже.
Но тут... Не знаю. Сейчас посмотрю.
Мне приходилось делать any ptr.
Re: Объявление типа
Ха-эм. Если я правильно понял, то можно объявить временный тип, который можно потом будет уже переопределить.
Если это не так, напишите.
А если моё предположение верно, то хотелось бы узнать подробности на русском языке!
Буду ждать!
Если это не так, напишите.
А если моё предположение верно, то хотелось бы узнать подробности на русском языке!
Буду ждать!
Re: Объявление типа
Интересная фича. Не знал про нее, честно говоря. Но в моем случае это не подходит, а вот что я нашел:
короче можно написать так:
Если это не так, напишите.
Вообще-то можно и без "вы". Намек понят?
Type (Alias)
Declares an alternative name for a type
Syntax
Type typename As symbol
Parameters
typename - new alternative name.
symbol - symbol or data type declaration to associate with typename.
Description
symbol may refer to any declared data type including a built-in data type, Sub or Function pointer, Type declaration, Union declaration, or Enum declaration.
A type alias can be used to allow forward declarations of User Defined Types.
короче можно написать так:
- Код:
type tp2_forw as tp2
type tp1
as tp2_forw ptr pointr
end type
type tp2
as tp1 ptr pointr
end type
Если это не так, напишите.
Вообще-то можно и без "вы". Намек понят?
DiG. GeRR- Сообщения : 101
Дата регистрации : 2009-01-30
Возраст : 32
Откуда : Рудный, Казахстан
Re: Объявление типа
Набивая слово "вы" я имел в виду множественное число "вы люди" (вы все те кто читаете сообщение).
А твой последний пример, как понимаю реально рабочий?
Я видел, но не пошол его смотреть. Думал какой-то изврат, с именованиме для компилера.
А что же тогда делает временный тип?
А твой последний пример, как понимаю реально рабочий?
Я видел, но не пошол его смотреть. Думал какой-то изврат, с именованиме для компилера.
А что же тогда делает временный тип?
Re: Объявление типа
Набивая слово "вы" я имел в виду множественное число "вы люди" (вы все те кто читаете сообщение).
О, великий, могучий и многозначный!!!
Я так понял, это сделано только для краткости кода. Ну, может, быть, позволяет немного соптимизировать код. Чтоб не писать что-то вроде
mtype tp = {10, 10, 10}
my_func_that_gets_mtype(mtype)
а просто my_func_that_gets_mtype(type(10, 10, 10))
ну и некоторые другие применения...
а, вот: в С есть такой код:
а в фб
О, великий, могучий и многозначный!!!
Я так понял, это сделано только для краткости кода. Ну, может, быть, позволяет немного соптимизировать код. Чтоб не писать что-то вроде
mtype tp = {10, 10, 10}
my_func_that_gets_mtype(mtype)
а просто my_func_that_gets_mtype(type(10, 10, 10))
ну и некоторые другие применения...
а, вот: в С есть такой код:
- Код:
myclass my_func_that_returns_myclass()
{
return myclass(0, 0, 0);
}
а в фб
- Код:
function my_func_that_returns_mytype() as mytype
return type<mytype>(0, 0, 0)
end function
DiG. GeRR- Сообщения : 101
Дата регистрации : 2009-01-30
Возраст : 32
Откуда : Рудный, Казахстан
FreeBasic :: Программирование :: Общее
Страница 1 из 1
Права доступа к этому форуму:
Вы не можете отвечать на сообщения
|
|