Возможно ли это? Вот пример :
fraction <T> fraction<T>::operator+(const fraction& b) const
{
fraction newFrac(*this);
fraction newB(b);
newFrac.LCD_cast_both(newB);
newFrac.integer += newB.integer;
return newFrac;
}
будет ли это работать? Integer - приватный член типа T.
Будет*.
Вот объяснение из C++ FAQ:
В идентификаторе this
нет ничего специального. Доступ даётся или не даётся в зависимости от класса объекта (или ссылки/указателя на него), вне зависимости от идентификатора, представляющего ссылку/указатель/объект.
[...]
Давайте рассмотрим оператор присваивания: Foo::operator=(Foo const& x)
. Этот оператор должен, скорее всего, изменить данные в объекте-приёмнике, *this
, исходя из значений данных в объекте-источнике, x
. В отсутствие правила C++, которое мы обсуждаем, единственная возможность для оператора получить доступ к закрытым полям x
— это если бы класс Foo
имел открытый get-метод для каждого закрытого поля! Это была бы полная хрень.
(перевод мой)
*при наличии правильного конструктора копирования у fraction<T>
, конечно.
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Есть сниффер , ловит пакеты записывает заголовочную информацию в файлПрепод требует допустим если udp пакет записывал еще порты , icmp - тип icmp и код...
У меня есть небольшая программа, которая считает слова, я знаю как она работает, но не совсем понимаю как именно устроен механизмКонкретно...
Написала код программы для этой задачи,а она выдает ошибку,подскажите что не такИ не прописала два последних условия- E-сбит ровно один истребитель,F-сбит...
Есть Crypto API, есть сертификат, есть данныеНеобходимо получить подпись