Сократить путь в классе до переменной в С++ можно было ?

vertyal17

Уточняю вопрос:
Хочу сделать так, чтобы не писать каждый раз такую зубодробильню:
a=class1.subclass2.subsubclass3.x-class1.subclass2.subsubclass3.y
а писать чтото типа:
with (class1.subclass2.subsubclass3)
{
a=x-y
}
Такое можно было делать в С++ какимто встроенным макро-оператором?
Или выход только самому писать чтонибудь вроде:
#define A class1.subclass2.subsubclass3
t=A.x-A.y
#undef A
Помню вроде гдето чтото такое было. Но не помню где. Попробовал поискать в инете, но сразу закопался.

rosali

вместо define напиши функцию. и вообще при чем тут subclass? это поля у тебя или классы-родителей?

a10063

subsubclass3_class & A=class1.subclass2.subsubclass3
t = A.x - A.y
может так?
или я не так понял?

Realist

оператор using тебя спасет

bleyman

typedef

rosali

И зачем вы это пишете то? И using и typedef _вообще_ не про то, не позорились бы...

Julie16

+1

Julie16

+ 1

bleyman

А!
А это он что вообще имеет в виду?! Статическую переменную штоле? Ибануццо.

vertyal17

Ладно, все равно макросами сделал.

rosali

Статическую переменную штоле
Даже смишно Опять мимо! В C++ через '.' обозначается _только_ доступ к полю объекта, это тебе не C#...

bleyman

А!
То есть...
Ща.
Он имел в виду object1.subobject2.subsubobject3.x, да?

laki

И снова пришел ФЖ и обосрал С++

bleyman

Неправда, я очень люблю С++ и даже и не думал его обсирать!

trobak

Вместо

#define A class1.subclass2.subsubclass3
t=A.x-A.y
#undef A

имхо, лучше

CMyClass &A = class1.subclass2.subsubclass3;
t=A.x-A.y

(если ты под "class1.subclass2.subsubclass3" таки имел ввиду поля класса, а не что-то вроде "class1 :: subclass2 :: subsubclass3 " , а x и y были статическими - тогда юзай typedef)
Оставить комментарий
Имя или ник:
Комментарий: