перегрузка оператор() через оператор[][] на c++ [дубликат]

108
21 апреля 2022, 10:20
На этот вопрос уже даны ответы здесь:
Перегрузка оператора [][] (8 ответов)
Закрыт 1 год назад.

нужно так чтобы data[5][5] код выводил как data(5,5) и как результат выдавал произведение ixj, т.е. 5*5=25. Желательно, чтобы была имплементация классов header file примерно такой

#ifndef HEADER_H
#define HEADER_H
class Data {
 public:
 mineData();// это функция, которая должна включать перегрузку
 
 int data()( int, int );
 private:
 int data[5][5];
};
#endif
Answer 1
#include <iostream>
class Test
{
    struct Impl
    {
        int a;
        auto operator[](int b)
        {
            return a * b;
        }
    };
public:
    auto operator[](int a)
    {
        return Impl{a};
    }
};
int main()
{
    Test data;
    std::cout << data[7][6] << std::endl;
    return 0;
}

Запустить код

READ ALSO
Гауссовский фильтр C++

Гауссовский фильтр C++

Написал программу, которая применяет фильтр Гаусса на зашумленное одноканальное изображениеПроблема в том, что на выходе оно получается...

101
Sql запрос и обработка на php

Sql запрос и обработка на php

Имеется 3 табличкиЗадание, типы заданий (категории грубо, их может быть несколько к одному заданию) и связывающая их табличка

193
После require_once() откуда-то возникает единичка

После require_once() откуда-то возникает единичка

Очень странная ситуация, глупая, но не решаемая уже много часов

101
Отображение html в окне ввода

Отображение html в окне ввода

Имеем файл indexphp В нем такой код

114