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

Переопределение operator [][] - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ MVS 2008 открытие проекта http://www.cyberforum.ru/cpp-beginners/thread411263.html
Ребят пытаюсь открыть MVS 2008 проект .sln подписан он Version (unrecognized version), при открытие выдает: The selected file is a solution file, but was created by a newer version of this application and cannot be opned. Раньше открывал, а сейчас после обновления исходников нехочет, почему неподскажите?
C++ объединения, онли теория есть у меня объединение union un23 { char a; float b; struct { int f; short c; }; double e; } un; http://www.cyberforum.ru/cpp-beginners/thread411249.html
C++ Function 'CharToOem' should have a prototype
#include <iostream.h> #include <conio.h> #include <windows.h> #include<iomanip.h> char NEWT; char*RUS(char*TEXT) { CharToOem(TEXT,NEWT); return NEWT;}
Гпрограмма C++
Как написать такую программу в графической оболочке #include <iostream> void main() { double n; std::cin>>n; std::cout<<sqrt(n); }
C++ Список списков) http://www.cyberforum.ru/cpp-beginners/thread411238.html
задача: В некотором институте приобретаемые компьютеры выделяются различным факультетам поочередно. В пределах факультетов имеются очереди из кафедр. Факультет, получивший компьютер, перемещается в конец очереди, а соответствующая кафедра исключается из факультетской очереди. Вновь организованные факультеты и кафедры занимают последние места в...
C++ Помогите найти ошибку или переписать программу! Здравствуйте! Никак не могу справиться с одной задачей. Я и несколько одногруппников "прокрутили в голове" саму задачу и все говорят, что по идее все должно выполняться. На практике - вообще ничего не происходит. Условие: Дана строка: фамилия, имя, отчество записаны через один пробел. Вывести слово, в котором букв "а" наибольшее количество. Мое решение: #include <iostream> using namespace... подробнее

Показать сообщение отдельно
Bers
Заблокирован
19.12.2011, 17:23     Переопределение operator [][]
Цитата Сообщение от Fantom.AS Посмотреть сообщение
Не работает. Я это сразу попробовал. Значение элемента матрицы не меняется...
А... я забыл просто про одну особенность))
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
typedef unsigned int uint;
struct Test
{
    uint x,y; //размеры матрицы
    int** myMatrix; //это сама матрица
 
    Test()  //инициализация дин. матрицы
    {
        x=10; y=10; //стартовые размеры матрицы
        myMatrix = new int*[y]; //создали строки матрицы
 
        for( uint iy= 0; iy< y; ++iy)
        {
            myMatrix[iy]= new int[x]; //создали элементы строки матрицы
 
            for (uint ix=0; ix<x; ++ix) 
            {
                myMatrix[iy][ix]=5; //заполнили матрицу пятёрками
            }
        }
    }
 
    ~Test()
    {
        for( uint iy= 0; iy< y; ++iy)
        {
            delete[] myMatrix[iy]; //удалим элементы строки
        }
        delete [] myMatrix; //удалим саму матрицу
    }
 
    //вернёт строку из матрицы
    int*& operator[] (uint val) { return myMatrix[val]; } 
};
 
 
int main()
{
    Test matrix;
 
    uint x=3, y=4;
    matrix[y][x]=1; //записали в матрицу
 
    int* line = matrix[y]; //вернёт строку из матрицы
    int val = matrix[y][x]; //вернёт элемент
}
Гм?)

Добавлено через 7 минут
хотя.. вот щас проверил по человечески... у меня лично все прекрасно и старый вариант записывал
 
Текущее время: 03:12. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru