Форум программистов, компьютерный форум, киберфорум
Наши страницы

Перегрузка индексации - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Сколько функций входит в состав модуля Math? http://www.cyberforum.ru/cpp-beginners/thread55911.html
Кто знает сколько функций входит в состав модуля Math
C++ Code::Blocks. "undefined reference to" Доброго времени суток! Это опять я :) Столкнулся со следующей проблемой. Есть 5 файлов: main.cpp --- здесь функция int main(), т.е. делаю build and run class1.h --- ... http://www.cyberforum.ru/cpp-beginners/thread55900.html
C++ Копирование файла
Делаю программку для копирование файла настроек оперы с\на разные операционые системы. Для копирование я узнаю имя пользователя для это я использую GetUserName(szUserName, &dwSize); У меня...
C++ [C/C++]Компилятор g++.Странности с true и false.Кто нибудь может прокомментировать/повторить это у себя?
Заметил такую странность: Это проходит компиляцию bool *b = false; А это нет bool *b = true; error: cannot convert ‘bool’ to ‘bool*’ in initialization Компилятор g++.Почему это вообще проходит...
C++ стек со структурой http://www.cyberforum.ru/cpp-beginners/thread55836.html
Не могу найти ошибку. Что-то с добавлением элементов. При выводе выводится только последний(столько же раз сколько всего элементов) #include <iostream> #include <conio.h> using namespace std;...
C++ Табулирование кусочно непрерывной функции. Помогите пожалуйста с решением задачи. Выводить по диагонали снизу вверх слева направо в формате f(x)=y через паузы по 5 секунд порциями по N значений (N задает пользователь).Найти и вывести... подробнее

Показать сообщение отдельно
CyBOSSeR
Эксперт С++
2304 / 1674 / 86
Регистрация: 06.03.2009
Сообщений: 3,675
09.01.2010, 20:57
Цитата Сообщение от Rififi Посмотреть сообщение
для достижения желаемого эффекта читать про паттерн proxy

Не по теме:

Далеко послал


Вот код из книги А. Голуба Правила программирования на C и C++.
Как раз таки реализация операции индексации для двумерного массива.
Извиняюсь за слегка корявый вид.
1 #include <iostream.h>
2
3 class int_array
4 {
5 class row
6 {
7 friend class int_array;
8 int *first_cell_in_row;
9
10 row( int *p ) : first_cell_in_row(p) {}
11 public:
12 int &operator[] ( int index );
13 };
14
15 int nrows;
16 int ncols;
17 int *the_array;
18
19 public:
20 virtual
21 ~int_array( void );
22 int_array( int rows, int cols );
23
24 row operator[] (int index);
25 };
26 //========================================================
27 // функции-члены класса int_array
28 //========================================================
29 int_array::int_array( int rows, int cols )
30 : nrows ( rows )
31 , ncols ( cols )
32 , the_array ( new int[rows * cols])
33 {}
34 //--------------------------------------------------------
35 int_array::~int_array( void )
36 {
37 delete [] the_array;
38 }
39 //--------------------------------------------------------
40 inline int_array::row int_array::operator[]( int index )
41 {
42 return row( the_array + (ncols * index) );
43 }
44 //========================================================
45 // функции-члены класса int_array::row
46 //========================================================
47 inline int &int_array::row::operator[]( int index )
48 {
49 return first_cell_in_row[ index ];
50 }
51
52 //========================================================
53 void main ( void ) // ..♣
54 {
55 int_array ar(10,20); // то же самое, что и ar[10][20], но
55 // размерность во время компиляции
56 ar[1][2] = 100; // может быть не определена.
57 cout << ar[1][2];
59 }
1
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru