Модераторы: bsa
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Перегрузка [], смотрел прошлые темы , ответа не нашёл 
V
    Опции темы
djezul
Дата 29.8.2009, 01:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 51
Регистрация: 13.6.2009
Где: Украина , Донецк

Репутация: нет
Всего: нет



Вот такой класс!
Код

class CPArray{
    static const int array_size = 10;
    int Array[array_size];
    //int Num_of_Destr;
public:
    CPArray(void) {cout << endl << "Object Created!" << endl;}
    ~CPArray(void) {cout << endl << "Object Destroyed!" << endl;}
    friend ostream &operator<<(ostream &stream, CPArray obj);
    friend istream &operator>>(istream &stream, CPArray& obj);
    CPArray operator = (CPArray obj2);
    CPArray operator - (int Num); //делает заданное количество елементов массива равными 0, начиная с конца!
    CPArray operator -= (int Num); // тоже что и - , только удобнее!
    //void GetNumOfdestr(int value) {Num_of_Destr = value;}
    int& operator [](int i); //<<<<<<<---------------------------------------------вот тут проблемма
};

я написал , как пример в книге, всё 1 в 1 , у меня не работает , выдаёт ерунду, 10 цифр , причём непонятно откуда взятых.
Код

int &CPArray::operator[](int i){
    if (i < 0 || i > 9){
        cout << endl << "Error!" << endl;
        exit(1);
    }
    return Array[i];
}


Код

CPArray *MyArray = new CPArray;
...
cout << MyArray[1]; // если пробую так *MyArray[1]; , пишет 2100 ошибка

с мсдн
Код

// C2100.cpp
int main() {
   int r = 0, *s = 0;
   *r = 200;   // C2100
   // try 
   // *s = 200;
}

хотя непонятно , почему она у меня тут появляется, как я только уже не пробовал, не хочет работать. Помогите разобраться пожалуйста!
PM MAIL ICQ Skype   Вверх
mes
Дата 29.8.2009, 02:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


любитель
****


Профиль
Группа: Участник Клуба
Сообщений: 7954
Регистрация: 14.1.2006

Репутация: 79
Всего: 250



Цитата(djezul @  29.8.2009,  00:53 Найти цитируемый пост)
выдаёт ерунду, 10 цифр , причём непонятно откуда взятых.

массив инициализирован мусором, его и выдает.

Цитата(djezul @  29.8.2009,  00:53 Найти цитируемый пост)
CPArray *MyArray = new CPArray;
...
cout << MyArray[1]; // если пробую так *MyArray[1]; , пишет 2100 ошибка

(*MyArray)[1];




--------------------
PM MAIL WWW   Вверх
djezul
Дата 29.8.2009, 11:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 51
Регистрация: 13.6.2009
Где: Украина , Донецк

Репутация: нет
Всего: нет



Цитата(mes @  29.8.2009,  02:11 Найти цитируемый пост)

массив инициализирован мусором, его и выдает.

Нет, выше я вывожу весь массив, и выводит что надо, и мне непонятно , почему я хочу вывести 1 цифру а выводит 10.

Цитата(mes @  29.8.2009,  02:11 Найти цитируемый пост)
(*MyArray)[1];

Так работает , спасибо)
PM MAIL ICQ Skype   Вверх
mes
Дата 29.8.2009, 13:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


любитель
****


Профиль
Группа: Участник Клуба
Сообщений: 7954
Регистрация: 14.1.2006

Репутация: 79
Всего: 250



Цитата(djezul @  29.8.2009,  10:24 Найти цитируемый пост)
почему я хочу вывести 1 цифру а выводит 10.

ну так покажите как Вы это делаете, или ждите пока телепаты забредут в эту тему   smile 

Это сообщение отредактировал(а) mes - 29.8.2009, 13:55


--------------------
PM MAIL WWW   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "C/C++: Для новичков"
JackYF
bsa

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, bsa.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Для новичков | Следующая тема »


 




[ Время генерации скрипта: 0.0465 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.