Метод C ++ отличается только на «constness» возвращаемого типа (и const)

просто наткнулся на то, чего я раньше не видел. Предположим, у вас был следующий класс:

class foo
{
const bar* get() const;
bar* get();
}

Как клиент foo может решить, какой метод get () использовать?

0

Решение

Как и с любой другой перегрузкой на constКонечно, это зависит от пути доступа к объекту, для которого вызывается функция (другими словами, от типа неявного this параметр).

Пример:

void bar(foo nc1, foo &nc2, foo *nc3, const foo &c1, const foo *c2) {
// These call the non-const version:
nc1.get();
nc2.get();
nc3->get();

// These call the const version:
c1.get();
c2->get();
}
8

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]