Извините, ничего не найдено.

Не расстраивайся! Лучше выпей чайку!
Регистрация
Справка
Календарь

Вернуться   forum.boolean.name > Программирование игр для компьютеров > C++

Ответ
 
Опции темы
Старый 20.11.2007, 10:23   #1
DRAG
Знающий
 
Аватар для DRAG
 
Регистрация: 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
dimanche13
Мастер
 
Регистрация: 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
DRAG
Знающий
 
Аватар для DRAG
 
Регистрация: 12.11.2006
Сообщений: 252
Написано 31 полезных сообщений
(для 73 пользователей)
Re: Объект & функция

Большой спасиб =)
Всё получилось у мну сделать!!!

Что такое конструктор знаю, но что мона так:
obj(100,200,300)
не знал...=)
(Offline)
 
Ответить с цитированием
Старый 21.11.2007, 01:05   #4
alcoSHoLiK
Дэвелопер
 
Регистрация: 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
impersonalis
Зануда с интернетом
 
Аватар для impersonalis
 
Регистрация: 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
alcoSHoLiK
Дэвелопер
 
Регистрация: 17.01.2006
Сообщений: 1,512
Написано 78 полезных сообщений
(для 110 пользователей)
Re: Объект & функция

Автор все-таки точно не указал, использует он С или С++. Ссылки часто удобней, но в С их нет.
(Offline)
 
Ответить с цитированием
Старый 02.12.2007, 03:18   #7
DRAG
Знающий
 
Аватар для DRAG
 
Регистрация: 12.11.2006
Сообщений: 252
Написано 31 полезных сообщений
(для 73 пользователей)
Re: Объект & функция

Я на С++..
Просто ща шару на HGE пишу, а так получилось что в коде мона утонуть))
Он-то почти везде одинаковый но проблемма была с объектами.....
Теперь объём кода сократился примерно на 60% !!!!!!!!!!!!
Некоторые куски не запихивал в функции, ну мне так удобнее.
Просто не думал что такие проблы будут.
Строк примерно ~900.. И гдето ещё столько же надо написать, пишу две недели))
(Offline)
 
Ответить с цитированием
Ответ


Опции темы

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Функция Скриншот. Unodeya 3D-программирование 2 19.05.2009 17:57
функция... DeMoNN Программирование 2 12.03.2009 16:31
функция md5 Seregakz Основной форум 4 11.07.2008 14:48
Функция ввода GomZik Blitz3D 3 03.05.2008 19:44
Функция стрельбы AndruXa Blitz3D 9 14.09.2007 23:42


Часовой пояс GMT +4, время: 05:27.


vBulletin® Version 3.6.5.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot
Style crйe par Allan - vBulletin-Ressources.com