Другие языки программирования и технологии

С++. Чем отличаются операторы (->*) и (.*), от (->)и (.), и почему у них разный приоритет? И ещё один вопросик внутри.

И ещё вопросик про название фирмы. Само слово Borland как-то переводится? Или вообще что оно означает?
Не правильно, Васильев Дмитрий!

чтобы применять .* и ->* нужно использовать указатель на метод класса и объект или указатель на объект. А простыми скобочками этого никак не добиться.

class foo
{
public:
void Method(int a)
{
printf("foo::Method(%d)\n", a);
}
};

void main()
{
// переменная (объект)
foo v;

// вызов метода объекта
v.Method(0);

// указатель на объект
foo *pv = &v;

// вызов метода объекта через указатель на объект
pv->Method(1);

// указатель на метод объекта
void (foo::*pm)(int) = &foo::Method;

// вызов метода объекта через указатель на метод
(v.*pm)(2);

// вызов метода объекта через указатель на объект и через указатель на метод
(pv->*pm)(3);
}
АМ
Александр Миреев
21 360
Лучший ответ
а пример использования первых операторов кинуть можешь?
Ничего особо нового тут нет. На примерах:

v - переменные (не указатели)
p - указатели

vc = pa->*pb // В "C" будет vc = *(pa->pb)
vc = va.*pb // В "C" будет vc = *(va.pb)
vc = pa->vb
vc = va.vb
+
pc = pa->pb
pc = va.pb
pc = pa->&vb // Этого нет ! // В "C" будет pc = &(pa->vb)
pc = va.&vb // Этого нет ! // В "C" будет pc =&( va.vb)

// Приоритет повышается (возможно) из-за присутствия унарного орератора (& или *)

Borland - Оne who came from Borland (home farm), the name of several places in Scotland. (born+land)
AS
Azim Soatov
4 224