|
|
Перегрузка оператора []
Помогите правильно перегрузить оператор []
Вот класс:
Код:
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();
Как быть?
|
ХА! Мне Ваш форум очень помог. Я почему то быстрее нахожу свое решение, когда у Вас тут спрошу.
И не дожидаюсь ответа =)
Отвте в том, что функция должна получать адрес ячейки памяти.
|
Время: 15:22.
© OSzone.net 2001-