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

Как перегрузить оператор []? - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Имитация Internet Explorera http://www.cyberforum.ru/cpp-beginners/thread12662.html
Народ помогите советом! Тема такая! нужна прога которая бы имитировала присудствие на сайте! Сама кликает по линкам и все такое! с какой стороны подойти к написанию проги? какие библиотеки юзать, функции? подскажите кто что может!
C++ Создать массив минимально возможного размера, в котором нужно собрать общие элементы двух заданных массивов Даны два массива: А и B (M и N вводятся с клавиатуры). Необходимо создать третий массив минимально возможного размера, в котором нужно собрать общие элементы двух массивов. void init(int* mas,int size) { for(int i=0;i<size;i++) { *(mas+i)=rand()%20; } http://www.cyberforum.ru/cpp-beginners/thread12620.html
C++ Алгоритм убирания всех пробелов
Чтение бинарных файлов C++
Здравствуйте уважаемые эксперты,хотелось бы узнать как можно прочитать шестнадцатиричные значения из файла,длиной 1б,в блок размером 4байта каждый. И запихнуть каждыйблок в структуру для того чтоб обратиться к каждому значению отдельно. Проблемка у меня в том что байты в начале могут быть нулевыми,т.е.функции fread,fgets просто нечитают остальные, а со scanf я ужу мозги скрутил,не могу...
C++ работа с файлами http://www.cyberforum.ru/cpp-beginners/thread12535.html
Здравствуйте!прошу помогите пожалуйста написать программу на С++... Даны два файла(путь к файлам ввести с консоли).Надо найти сколько раз содержимое файла1 встречается в файле 2. Заранее спасибо))
C++ Как удалить символ Вот код проги, на экан выводит кол-во числ, затем <(скобки); перечисляет числа через запятую и наконец >(скобки)....... Как убрать после последнего числа и перед скобками запятую?? Допустим я ввёл 1 3 Прога пишет 3 <1,2,3,) Мне после 3 запятая не нужна Спасибо большое! #include <iostream> using namespace std; подробнее

Показать сообщение отдельно
XuTPbIu_MuHTAu
Эксперт C++
 Аватар для XuTPbIu_MuHTAu
2219 / 734 / 10
Регистрация: 27.05.2008
Сообщений: 1,507
21.09.2008, 13:45     Как перегрузить оператор []?
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
#include <stdio.h>
class Matrix
{
  unsigned int row,col; //Число строк и столбцов
  int *data; //Данные матрицы
  public:
    //Конструктор:
    Matrix(unsigned int r,unsigned int c){data=new int[r*c]; row=r; col=c;
        for(int i=0;i<r;i++) for(int j=0;j<c;j++) data[i+j*col]=i*j;}
    //Деструктор:
    ~Matrix(){if(data!=NULL){delete data; data=NULL;}}
    //Возвращает указатель на нулевой элемент строки r:
    int* operator[](unsigned int r){return data+r*col;}
};
 
int main(void)
{
  Matrix M(10,10);
 
  //M[1] -- указатель на начало строки 1
  //Тогда M[1][1] -- первый элемент первой строки (строки и столбцы нумеруются с нуля!!!)
  
 
  printf("%d %d %d \n",M[1][1],M[2][3],M[5][9]);
 
  return 0;
}
В общем,суть в том,что оператор [] возвращает указатель на начало строки матрицы, после чего вторым оператором [] задается уже смещение в этой строке.
 
Текущее время: 17:09. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru