Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Программирование и базы данных (http://forum.oszone.net/forumdisplay.php?f=21)
-   -   [решено] Перегрузка оператора [] (http://forum.oszone.net/showthread.php?t=230925)

котвася 21-03-2012 17:08 1884016

Перегрузка оператора []
 
Помогите правильно перегрузить оператор []
Вот класс:
Код:

class Combination{ 
public:         
      Combination(void);//Конструктор класса;         
      ~Combination();//Деконструктор класса;         
      Combination &setBall(int, int, int); // Установка значения шаров;         
      Combination &setDate(const char*);// Установка даты розыгрыша;         
      Combination &setNumber(int); //Установка номера розыгрыша;         
      void print(void);         
      Combination& operator[](int); // Перегружаем оператор [] 
private:          i
      int *BALL; // Массив шаров;         
      char *DATE; //Дата;         
      int *NUMBER; 
};

Код:

//Конструктор
Combination::Combination(){         
      BALL = new int[3];         
      if(BALL == 0)                 
      cout << endl << "Что-то пошло не  так!!!!!" << endl;           
      DATE = new char[12];         
if(DATE == 0)                 
      cout << endl << "Что-то пошло не так!!!!!" << endl;           
      NUMBER = new int; 
}

Код:

//Перегрузка оператора [] 
Combination& Combination:: operator[](int i){         
      Combination TEMP;         
return TEMP[i]; 
}

Если объявить Combination QW[100]; а потом передать в функцию f(x, QW[2]) -> то не работает.
Зато работает так:
Код:

       
      QW[1].setNumber(1);         
      QW[1].setBall(1,1,1);         
      QW[1].setDate("01.01.2001");         
      QW[1].print();

Как быть?

котвася 21-03-2012 17:33 1884033

ХА! Мне Ваш форум очень помог. Я почему то быстрее нахожу свое решение, когда у Вас тут спрошу.
И не дожидаюсь ответа =)

Отвте в том, что функция должна получать адрес ячейки памяти.


Время: 15:22.

Время: 15:22.
© OSzone.net 2001-