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

Переопределение [][] или ()() для класса - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Использование функций http://www.cyberforum.ru/cpp-beginners/thread280627.html
Здравствуйте! Помогите начинающему, который изучает тему "функции". Надо инициализировать массив и вывести его в консольное окно. Но в этом виде у него не работает: #include <iostream> #include "stdlib.h" #include <ctime> #include <iomanip> #include "stdafx.h" void IntializationOfArray ( )
C++ C++ мат. логика НАПИШИТЕ прогу pleas (желательно самый оптимальный вариант): дани число n и а=1, а можно умножать на 2 и на 3. Вопрос: как получить из а максимальное число, не превышающее n? http://www.cyberforum.ru/cpp-beginners/thread280621.html
Конструкторы и деконструкторы C++
Друзья при узучении С++ возникла проблема в понимание "Конструкторы и деконструкторы" Не могу понят как работают то вообще? #include<iostream> using namespace std; //Пишу класс class Answer //к примеру { public: Answer(int A);//конструктор Answer();//Деконструктор
C++ Сформируйте новую строку из пяти самых длинных слов.
Дана строка слов, разделенных пробелами, запятыми, точками. Сформируйте новую строку из пяти самых длинных слов. Определите количество слов, начинающихся первой буквой алфавита (русского или латинского).
C++ Строки в Visual С. Срочно пожалуйста. http://www.cyberforum.ru/cpp-beginners/thread280615.html
Определить, является ли указанная строка правильной записью адреса e-mail, или URL.
C++ Количество пар соседних элементов Вычислить количество пар соседних элементов,которые имеют противоположные знаки. При условии что размерность массива 200 а диапазон значений -50-50! подробнее

Показать сообщение отдельно
asics
Freelance
Эксперт C++
 Аватар для asics
2838 / 1775 / 144
Регистрация: 09.09.2010
Сообщений: 3,842
21.04.2011, 15:41     Переопределение [][] или ()() для класса
Цитата Сообщение от marphey Посмотреть сообщение
переопределить оператор [][]
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
#include <iostream>
 
class matrix{
private:
  int **data_;
  size_t cnt_row_, cnt_col_;
public:
  matrix(size_t cnt_row = 0, size_t cnt_col = 0) : cnt_row_(cnt_row), cnt_col_(cnt_col){
    data_= new int*[cnt_row_];
    for(size_t i = 0; i < cnt_row_; ++i){
      data_[i] = new int[cnt_col_];
      for(size_t j = 0; j < cnt_col_; ++j)
        data_[i][j] = 0;
    }
  }
  ~matrix(){
    for(size_t i = 0; i < cnt_row_; ++i)
      delete[] data_[i];
    delete[] data_;
  }
  int *operator[] (size_t idx){
    //if(idx >= cnt_row_)
      //error
    return data_[idx];
  }
};
 
int main(){
  matrix m(4, 5);
  for(size_t i = 0; i < 4; ++i){
    for(size_t j = 0; j < 5; ++j)
      std::cout << m[i][j] << ' ';
    std::cout << '\n';
  }
  return 0;
}
 
Текущее время: 11:32. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru