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

Перегрузка оператора [] - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Присваивание указателей, вызов оператора присваивания класса http://www.cyberforum.ru/cpp-beginners/thread806809.html
Если написать StrL **testStr; testStr = new StrL * ; testStr = new StrLBit("100001"); testStr = new StrLBit("0101"); testStr = testStr; bool t = 0; if (testStr == testStr) t = 1; printf ("%d", t);
C++ Передача объекта в метод Объясните пожалуйста,как правильно написать. Есть метод AddMessage() который добавляет сообщение в тему,и есть метод GetMessage() который выводит сообщение на экран. Сам объект класса создаётся уже в мэйне,потом я его передаю в метод AddMessage() и там у меня добавляется сообщение,а как мне теперь его вывести,то есть как методу GetMessage() показать что массив с сообщениями уже заполнен,то что... http://www.cyberforum.ru/cpp-beginners/thread806798.html
Перегрузка функций C++
а) по номеру года выдает его название по старо японскому календарю. б) по названию месяца выдает знак Зодиака. Заранее спасибо за помощь.
C++ Работа с конструктором
Всем доброго времени суток. Получил задание по программированию в универе. Писать задание за меня не прошу, нужно лишь уяснить парочку моментов. В общем-с, необходимо создать класс Person с одним единственным полем типа сhаr *, в котором можно хранить имя и которое можно проинициализировать только через конструктор Person(char const *). Препод сказал, что внутри конструктора должен...
C++ Задача на тему "Строки" (вывести на экран только предложения, состоящие из заданного количества слов) http://www.cyberforum.ru/cpp-beginners/thread806759.html
написать программу, которая считывает текст из файла и вывыдит на экран только предложения состоящие из задоного количества слов int main(int argc, char *argv) { fstream fp; //файловая переменная fp.open ("F:\\str.txt",ios::in); //открытие фп для чтения int ip=0,i,n,MAX=20,pi=1,prob; string s,pr(" ...
C++ Ошибка в программе с использованием функций #include <stdio.h>//подключение #include <conio.h>//необходимых #include <locale>//библиотек #include <time.h> void data_input(int *A); //Прототипы функций, в которые копируем предыдущий код void proccessing(int *A, int inc1, int inc2); void res_out(int *A); подробнее

Показать сообщение отдельно
fjay69
 Аватар для fjay69
85 / 85 / 1
Регистрация: 26.10.2012
Сообщений: 248
25.03.2013, 15:21     Перегрузка оператора []
В этой программе объект SampleClass имеет перегруженный оператор[], который возвращает объект lev1SampleClass, чей перегруженный оператор[] возвращает нужный нам элемент. Для примера взят двухмерный массив 2х2.
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
#include <iostream>
#include <cstdlib>
using namespace std;
 
class lev1SampleClass
{
  public:
    lev1SampleClass(int a, int b)
    {
      array[0]=a;
      array[1]=b;
    }
    int &operator[](int x)
    {
      return array[x];
    }
  private:
    int array[2];
};
 
class SampleClass
{
  public:
    SampleClass()
    {
      //Значения по умолчанию (для примера)
      array[0]=new lev1SampleClass(1,2);
      array[1]=new lev1SampleClass(3,4);
    }
    lev1SampleClass &operator[](int x)
    {
      return *array[x];
    }
  private:
    lev1SampleClass* array[2];
};
 
int main()
{
  setlocale(LC_ALL, "RUS");
  SampleClass a;
  cout<<a[1][1];//выводит 4, как и должно быть!
  system("pause");
  return 0;
}
ob [2][3] = (6,8)
В данном случае нужно перегрузить оператор присваивания для lv1SampleClass.
 
Текущее время: 22:21. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru