Отправляет email-рассылки с помощью сервиса Sendsay

Уроки по C/C++

  Все выпуски  

Уроки по C/C++


Уроки по C/C++. Рассылки сайта progs.biz
Рассылка № 40
 
Начало > C++ > Основы C++ > Урок 40

Том Миллер. DirectX 9 с управляемым кодом. Программирование игр и графики.
Том Миллер. DirectX 9 с управляемым кодом. Программирование игр и графики
Заказать на Озоне

Подробнее


Полные версии уроков (с картинками): урок 40.

C/C++
Урок 40. Иммитация перегрузки [][]

На прошлом уроке мы с вами перегрузили оператор [], который позволяет обращаться с экземпляром вашего класса как с одномерным массивом. На этом уроке мы с вами посмотрим, как можно обращаться с экземпляром класса как двумерным массивом.

Проблема тут в том, что оператора [][] просто нет. А раз его нет, то и перегрузить его нельзя. Но мы поступим вот как: в нашем классе мы создадим внутренний класс, в котором перегрузим оператор []. И в самом нашем классе (не во внутреннем) мы тоже перегрузим []. Тогда мы и сможем использовать [][] для экземпляра нашего класса.

Вот непосредственно код:

#include <iostream.h>
class CMyClass{
    // Внутренний класс.
    class CInnerClass{
        int m_arr[3];
    public:
        // Перегрузка оператора [].
        int &operator [](int index){
            return m_arr[index];
        }
    };

    CInnerClass m_arr[2];
public:
    // Перегрузка оператора [].
    CInnerClass & operator [](int index){
        return m_arr[index];
    }

};
void main(){
    CMyClass w;
    w[1][2] = 22;
    cout<<w[1][2]<<"\n";
}

Выведет эта программа, естественно, 22.

Рассылки сайта progs.biz
Visual C++, MFC
C# и .NET
VB.NET
ASP.NET
Win API
C/C++
Delphi
Java
HTML, PHP, mySQL, WEB-дизайн
Flash MX
C++ Builder
Ассемблер
SQL Server
DirectX
Обзор книг
Обзор программ
Новости сайта progs.biz


PARKING.RU. Качественный ВИРТУАЛЬНЫЙ ХОСТИНГ на платформе Windows(r): поддержка NET, многофункциональная панель управления, аренда бизнес-приложений, сертифицированные специалисты. Управляемый ВЫДЕЛЕННЫЙ ХОСТИНГ на платформе Windows(r): производительные серверы, профессиональная поддержка, аренда ПО Microsoft(r), безопасность, гарантии. http://www.parking.ru


Копирование любых материалов сайта без разрешения авторов и владельцев сайта запрещено.
© 2002-2006 сайт progs.biz
© 2002-2006 Игорь Алексеев

В избранное