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

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

  Все выпуски  

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


Информационный Канал Subscribe.Ru

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

Т. А. Павловская
C/C++.
Программирование на языке высокого уровня.
Т. А. Павловская<br>C/C++. Программирование на языке высокого уровня
Заказать на Озоне


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

C/C++
Урок 27. Классы и указатели

На прошлых уроках мы видели только один способ объявления экземпляров класса - а именно мы писали что-то вроде:

CMyClass z;

Вообще же говоря экземпляры класса лучше во многих случаях заводить не в стеке, а в куче (at heap - подробности см. в уроке 15. Это, в частности, связано с тем, что стек - вещь довольно-таки ограниченная по объему, классы же часто представляют из себя довольно-таки большие и сложные объекты, и если вы будете размещать в стеке что-то вроже массива экземпляров класса, то объема стека просто может не хватить (хотя, конечно, для учебных программм это случится навряд ли).

Так же как и для встроенных типов данных для размещения экземпляра класса в куче использется оператор new. Именно он и занимается выделением памяти. Вот пример:

CMyClass * z;
z = new CMyClass; // Непосредственное выделение памяти.

Конструктор класса при этом вызовется на второй строке, т. е. в операторе new.

Эти два оператора можно объединить:

CMyClass * z = new CMyClass; // Непосредственное выделение памяти.

Если в классе есть конструктор с параметрами, то он вызывается примерно так:

// Вызов конструтора с одним параметром.
CMyClass * z = new CMyClass(22);
// Вызов конструтора с двумя параметрами.
CMyClass * z = new CMyClass(22, 44);

Еще одно отличие между двумя способами создания экземпляра класса (в стеке или в куче) - это вызов методов класса. Если при создании экземпляра в стеке между именем экземпляра и именем метода используется точка, то при создании экземпляра класса в куче (т. е. через оператор new) используется стрелочка. Вот пример:

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


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


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

http://subscribe.ru/
http://subscribe.ru/feedback/
Адрес подписки
Отписаться

В избранное