Форум программистов, компьютерный форум CyberForum.ru

Перегрузка operator[][][] - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Строка: Найти наибольше количество идуших подряд одинаковых символов http://www.cyberforum.ru/cpp-beginners/thread946343.html
дан текст. Найти наибольше количество идуших подряд одинаковых символов
C++ Вызов LoadLibrary из DLL Есть две Dll - DLL_A и DLL_B Использую MS Visual Studio 2010 C++(MFC) Из основной программы загружаю DLL_A через LoadLibrary, далее вызываю функцию из DLL_A, которая должна загрузить DLL_B через LoadLibrary. Так вот загрузка DLL_A и вызов функции проблем не вызывает, но когда пытаюсь вызвать LoadLibrary уже из DLL_A, то система выдает исключение и ничего не работает, т.е. сбой происходит... http://www.cyberforum.ru/cpp-beginners/thread946338.html
Проверить является ли матрица треугольной C++
Всем добрый день. У меня есть матрица, по которой составлен вектор. А как проверить, является ли матрица треугольной? Вот мой код: #include <conio.h> #include <iostream> #include <vector> #include <ctime> using namespace std; int main() {
C++ Строка: Найти наибольшее количество идуших подряд пробелов.
Дано предложения. Найти наибольшее количество идуших подряд пробелов.
C++ Пятнашки http://www.cyberforum.ru/cpp-beginners/thread946274.html
# include <iostream> using namespace std; //# include <russian.h> # include <stdlib.h> # include <conio.h> # include <time.h> const int SIZE=4; void main() {
C++ Нужны исходники кода из книги от Э. Гамма, Р. Хелм, Р. Джонсон, Дж. Влиссидес книга: Приемы объектно-ориентированного проектирования. Паттерны проектирования автор: Э. Гамма, Р. Хелм, Р. Джонсон, Дж. Влиссидес где взять исходники. спасибо. ps. по почте не приходит. подробнее

Показать сообщение отдельно
ninja2
230 / 186 / 7
Регистрация: 26.09.2012
Сообщений: 2,018
Завершенные тесты: 1
01.09.2013, 13:02  [ТС]     Перегрузка operator[][][]
Nameless One, От мой вариант, то же самое
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
#include <iostream>
using std::cout;
using std::endl;
 
class cl
{
    int*** p;
    int a;
    int b;
    int c;
public:
    cl(int aa,int bb, int cc, int val=0)
        :a(aa),
        b(bb),
        c(cc)
    {
        p=new int** [a];
        for(int i=0;i<a;i++) 
        {
            p[i]=new int* [b];
            for(int j=0;j<b;j++)
                p[i][j]=new int[c];
        }
        //инициализация
        for(int i=0;i<a;i++)
            for(int j=0;j<b;j++)
                for(int k=0;k<c;k++)
                    p[i][j][k]=val;
    }
    void print()
    {
        cout <<"mu tyt"<<endl;
        for(int i=0;i<a;i++)
        {
            for(int j=0;j<b;j++)
            {
                for(int k=0;k<c;k++) cout <<p[i][j][k]<<' ';
                cout <<endl;
            }
            cout <<"-----------------------------"<<endl;
        }
    }
 
    int** operator[](int i){return p[i];}
};
 
int main()
{
    cl c(3,3,3);
 
    c.print();
 
    c[2][2][1]=8;
 
    c.print();
 
    return 0;
}

Вообще в задаче я думаю нужно было сделать для своих собственных типов, ну да ладно главное смысл понять. Для собственных типов было б прикольнее, нам бы пришлось создавать замыкание, ну да ладно не буду заморачиватся.

Добавлено через 5 минут
Цитата Сообщение от castaway Посмотреть сообщение
Я бы отбросил "В идеале в данном случае", т.к. нельзя перегрузить множественный оператор subscript, только применяя его неоднократно к типу, с этим же перегруженным оператором.
Ну ладно должна цепочка быть, из subscript::operator[] возвращаем допустим int *p, а потом уже вызывается его собственный [].
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru