forum.boolean.name

forum.boolean.name (http://forum.boolean.name/index.php)
-   Болтовня (http://forum.boolean.name/forumdisplay.php?f=25)
-   -   какой синтаксис лучше (http://forum.boolean.name/showthread.php?t=14947)

HolyDel 21.06.2011 02:12

какой синтаксис лучше
 
ent->Position(some_vec);
vec3 vec = ent->Position();

ent->SetPosition(some_vec);
vec3 vec = ent->GetPosition();

Mr_F_ 21.06.2011 02:19

Ответ: какой синтаксис лучше
 
второй имхо понятнее

moka 21.06.2011 03:35

Ответ: какой синтаксис лучше
 
Второй понятнее, но если не отталкиваться от старых "байсик идеологий", то я бы выбрал первый.

Но, есть ли аналог Accessor'ов в С++?

Было бы намного круче:
Код:

ent->Position = some_vec;
ent->Position->X = 1024;
vec3 vec = ent->Position;


Randomize 21.06.2011 06:47

Ответ: какой синтаксис лучше
 
Цитата:

Сообщение от MoKa (Сообщение 192470)
Второй понятнее, но если не отталкиваться от старых "байсик идеологий", то я бы выбрал первый.

Но, есть ли аналог Accessor'ов в С++?

Было бы намного круче:
Код:

ent->Position = some_vec;
ent->Position->X = 1024;
vec3 vec = ent->Position;


Довольно удобно:
Код:

ent->Position = new vec3(1,2,3)
ent->Position->x++;
ent->Positon->y--;
ent2->Position = ent->Position;


HolyDel 21.06.2011 07:14

Ответ: какой синтаксис лучше
 
Цитата:

Довольно удобно:
к сожалению не вижу способа реализации. надо считать матрицу трансформации. если дать пользователю напрямую редактировать позицию - то я несмогу в плюсах отловить факт редактирования. Ето же не шарп с аццесорами.

Код:

ent2->Postion(ent); - так можно будет
ну или ent2->SetPosition(ent); - если не решусь убрать Get-Set


Randomize 21.06.2011 11:39

Ответ: какой синтаксис лучше
 
Лучше без Get/Set тогда.
А если не секрет, как правильно определять в таком типе ф-ции заносит пользователь данные или просто хочет получить?

Вот к примеру псевдокод:
Код:

class foo{
  float x;
 
  float bar(float x_ = ???){
      // Вот как проверить заносит ли пользователь данные?
      // Если делать пр-ку на определённое число то это костыль
      return x;
  }
}


baton4ik 21.06.2011 13:18

Ответ: какой синтаксис лучше
 
Перегрузка?

Mr_F_ 21.06.2011 14:13

Ответ: какой синтаксис лучше
 
Цитата:

А если не секрет, как правильно определять в таком типе ф-ции заносит пользователь данные или просто хочет получить?
просто создаёшь две функции Position, одна с параметрами, другая без.

имхо это неудобно, т.к. пройдёт пара лет, ты откроешь свой код (или его откроет кто-нибудь ещё), и задашься вопросом - "Что делает метод Position? ставит или берёт позицию?". Потом до тебя только начнёт доходить что и то и другое. А если явно указано Get и Set, то тут и ежу понятно какой метод что делает.


IGR 21.06.2011 19:23

Ответ: какой синтаксис лучше
 
2-ой же !! Set/Get понятней !! :)

HolyDel 22.06.2011 00:51

Ответ: какой синтаксис лучше
 
хорошо, что спросил :)

добавил возврат объекта в сеттерах
теперь можно писать так:
Код:

        Entity *turret = s->Add(cube)
                ->SetParent(body)
                ->SetShader(StandartShaders::Render::OnlyNormals())
                ->SetPosition(0,0.0,-1.25)
                ->SetScale(0.25)
                ->SetBlend(BM_MULTUPLY);


.Squid 22.06.2011 14:13

Ответ: какой синтаксис лучше
 
Цитата:

BM_MULTUPLY
wtf?

moka 22.06.2011 14:31

Ответ: какой синтаксис лучше
 
Такая "фича", удобна при говнокоде и для быстрой разработке, но на деле, в больших проектах не очень и применяемо..

.Squid 22.06.2011 15:40

Ответ: какой синтаксис лучше
 
Нормальная фича, при чем тут говнокод?

Morganolla 22.06.2011 15:45

Ответ: какой синтаксис лучше
 
Уверен, что второй способ лучше! Это стандартный подход. Меньше будет головной боли...

ANDREYman 22.06.2011 16:11

Ответ: какой синтаксис лучше
 
Можно ещё так ))
Код:

ent->Position = {3.0, 47.0, 18.0};
ent->Position(3.0, 47.0, 18.0);
ent->Position = ent2;
ent->Position->x(LOCAL) = 1024;
vec3 vec = ent->Position;
vec3 vec = ent->Position(GLOBAL);

Как по мне - пофигу, но лучше без извращений. Что первый, что второй варианты катят.

IGR 22.06.2011 17:02

Ответ: какой синтаксис лучше
 
Цитата:

ent->Position = ent2;
хм.. а это как ?? :)

Hurrit 22.06.2011 19:56

Ответ: какой синтаксис лучше
 
без сет/гет будет плохо ящитаю. имя функции должнa говорить, что функция выполняет. и удачи!

Цитата:

Сообщение от IGR (Сообщение 192670)
хм.. а это как ?? :)

получаем позицию ent2 и передаем ent.

h1dd3n 22.06.2011 21:40

Ответ: какой синтаксис лучше
 
Цитата:

Сообщение от IGR (Сообщение 192670)
хм.. а это как ?? :)

Либо опечатка, либо перегрузка.

den 22.06.2011 22:25

Ответ: какой синтаксис лучше
 
Не, просто ent2 нигде не объявлён.
Поидее это вектор3.
Но всем своим видом названием он говорит что это объект!:)

upd: хм, действительно, как?! в си же нету ацесоров...

wolfhound512 22.06.2011 22:54

Ответ: какой синтаксис лучше
 
h1dd3n же ответил. Перегрузка оператора =

HolyDel 23.06.2011 01:50

Ответ: какой синтаксис лучше
 
Цитата:

Цитата:

wtf?

очепятка же. в хидере О_о
спасибо


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

vBulletin® Version 3.6.5.
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Перевод: zCarot