Хотите улучшить этот вопрос? Обновите вопрос так, чтобы он вписывался в тематику Stack Overflow на русском.
Закрыт 1 год назад.
Пишу свою структуру данных в виде шаблона struct. В ней должен быть помимо прочего метод front() для обращения к определенному элементу.
Проблема в том, что этот метод нужен и для сравнения этого элемента с внешними (возврат значения из функции по константной ссылке) и для присвоения элементу значения (возврат из функции обычной ссылки). Я пробовал писать два метода, либо вложенную структуру которая съедает круглые скобочки и переопределяет оператор присваивания. Получалась какая-то лажа. Покажите какую-нибудь каноничную реализацию такого.
#include <cstddef>
template <typename T, std::size_t MaxElements>
struct cb{
T buffer[MaxElements];
// Тут реализация метода front() который возвращает buffer[0]
};
int main(){cb<int,7>cc;cc.front()=0;if(cc.front()==0){};return 0;};
Написать две функции-члена. Одну для const
обьектов, вторую для обычных обьектов.
T& front()
{
return buffer[0];
}
const T& front() const
{
return buffer[0];
}
P.S. Не забудьте написать нужные проверки в этих функциях.
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Помогите разобраться как реализовать задачу "Спящий парикмахер", используя обмен сообщениями: Send и RecvРазобрался, как реализовать через...
Есть программа, ошибку выдает после прохождения функции mat1, при присваивании A[i] значение функции
Есть простейший алгоритм на c++, который заполняет и выводит двухмерный динамический массив числами от 1 до n*m, но не работает с некоторыми...
Как в конструкторе класса инициализировать поле класса, являющееся объектом класса и созданное на стеке? Следующий код вызывает ошибку