|
20.11.2007, 10:23
|
#1
|
Знающий
Регистрация: 12.11.2006
Сообщений: 252
Написано 31 полезных сообщений (для 73 пользователей)
|
Объект & функция
Вот есть проблемка :
например есть структура и объект obj и obj2
struct z
{
int x;
int y;
int z;
}obj,obj2;
Нужно сделать функцию которая в качестве параметра
принимала объекты структуры.
Ну типа этого :
void function( object )
{
object.x = 100;
object.y = 200;
object.z = 300;
}
|
(Offline)
|
|
20.11.2007, 11:40
|
#2
|
Мастер
Регистрация: 19.03.2007
Сообщений: 1,039
Написано 153 полезных сообщений (для 252 пользователей)
|
Re: Объект & функция
Возможность такая есть, надо в параметр ф-ции направлять указатель на объект. Но раз уж ты пишешь на С++, то надо юзать методы-класса :
class z{
int x,y,z;
init(xset,yset,zset) { x = xset; y = yset; z = zset; }
}
z obj;
obj.Init(100,200,300)
Если тебе надо просто инициализировать объект при создании, то можно заюзать конструктор. Это метод класса который имеет название такое же как и сам класс и вызывается при создании объекта.
class z{
int x,y,z;
z(xset,yset,zset) { x = xset; y = yset; z = zset; }
}
z obj;
obj(100,200,300)
Так же его можно перегружать, но это уже другая история...
|
(Offline)
|
|
20.11.2007, 21:52
|
#3
|
Знающий
Регистрация: 12.11.2006
Сообщений: 252
Написано 31 полезных сообщений (для 73 пользователей)
|
Re: Объект & функция
Большой спасиб =)
Всё получилось у мну сделать!!!
Что такое конструктор знаю, но что мона так:
не знал...=)
|
(Offline)
|
|
21.11.2007, 01:05
|
#4
|
Дэвелопер
Регистрация: 17.01.2006
Сообщений: 1,512
Написано 78 полезных сообщений (для 110 пользователей)
|
Re: Объект & функция
dimanche13
Не факт, что на С++)
DRAG
Просто нужно по адресу, а не по значению передавать.
typedef struct {
int x;
int y;
int z;
} MegaType;
void func(MegaType* object)
{
object->x = 10;
object->y = 20;
object->z = 30;
}
// Пример использования
MegaType pos = { 0, 0, 0};
func(&pos);
// теперь pos.x == 10, pos.y == 20, pos.z == 30
|
(Offline)
|
|
21.11.2007, 01:15
|
#5
|
Зануда с интернетом
Регистрация: 04.09.2005
Сообщений: 14,014
Написано 6,798 полезных сообщений (для 20,935 пользователей)
|
Re: Объект & функция
Просто нужно по адресу, а не по значению передавать.
|
или по ссылке
void func(MegaType &object)
{
object.x = 10;
object.y = 20;
object.z = 30;
}
|
Имхо, логичней. Хотя вариант alcoSHoLiK мне импонирует в сложных системах - меньше заморочек с TypeCast, который не все объекты имеют в должной степени, да и преобразовний с контейнерами типа CPtrArray будет меньше.
__________________
http://nabatchikov.com
Мир нужно делать лучше и чище. Иначе, зачем мы живем? tormoz
А я растила сына на преданьях
о принцах, троллях, потайных свиданьях,
погонях, похищениях невест.
Да кто же знал, что сказка душу съест?
|
(Offline)
|
|
21.11.2007, 02:16
|
#6
|
Дэвелопер
Регистрация: 17.01.2006
Сообщений: 1,512
Написано 78 полезных сообщений (для 110 пользователей)
|
Re: Объект & функция
Автор все-таки точно не указал, использует он С или С++. Ссылки часто удобней, но в С их нет.
|
(Offline)
|
|
02.12.2007, 03:18
|
#7
|
Знающий
Регистрация: 12.11.2006
Сообщений: 252
Написано 31 полезных сообщений (для 73 пользователей)
|
Re: Объект & функция
Я на С++..
Просто ща шару на HGE пишу, а так получилось что в коде мона утонуть))
Он-то почти везде одинаковый но проблемма была с объектами.....
Теперь объём кода сократился примерно на 60% !!!!!!!!!!!!
Некоторые куски не запихивал в функции, ну мне так удобнее.
Просто не думал что такие проблы будут.
Строк примерно ~900.. И гдето ещё столько же надо написать, пишу две недели))
|
(Offline)
|
|
Ваши права в разделе
|
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 10:34.
|