C++ за 21 день седьмое издание



Download 1,38 Mb.
bet151/437
Sana22.02.2022
Hajmi1,38 Mb.
#89455
TuriРеферат
1   ...   147   148   149   150   151   152   153   154   ...   437
Bog'liq
word1

(*pTom).IntroduceSelf() ;


Доступ к членам класса с использованием оператора указателя (->)

Если объект был создан в динамической памяти с использованием оператора new или если у вас есть указатель на готовый объект, то для доступа к его атрибутам и функциям можно использовать оператор указателя (pointer operator) (->):





Human* pTom = new Human();




pTom->DateOfBirth = "1970";




pTom->IntroduceSelf();

#

delete pTom;




  1. Альтернативно при наличии указателя: Human Tom;

Human* pTom = &Tom; // Присвоить адрес, используя оператор ссылки & pTom->DateOfBirth = "1970"; // эквивалентно Tom.DateOfBirth = "1970";
pTom->IntroduceSelf(); // эквивалентно Tom.IntroduceSelf();

Готовая для компиляции форма класса Human с ключевыми словами p r i v a t e и p u b lic представлена в листинге 9.1.




ЛИСТИНГ 9.1. Готовый для компиляции класс Human___________________________________



  1. #include




  1. #include




  1. using namespace std;








  1. class Human




  1. {




  1. private:




  1. string Name;




  1. int Age;



9:


10: public:

Концепция классов и объектов

207




  1. void SetName (string HumansName)

12:{





  1. Name = HumansName;

14: }



  1. void SetAge(int HumansAge)

l 7 : {


  1. Age = HumansAge;




  1. }




  1. void IntroduceSelf()

22: {



  1. cout « "I am " + Name « " and am ";




  1. cout « Age « " years old" « endl;




  1. }




  1. };




  1. int main()




  1. 9 : {

1*0: // Создание объекта класса Human со значением "Adam"



    1. атрибута Name




  1. Human FirstMan;




  1. FirstMan.SetName("Adam");




  1. FirstMan.SetAge(30);








  1. // Создание объекта класса Human со значением "Eve"




      1. атрибута Name




    1. Human FirstWoman;




    1. FirstWoman.SetName("Eve");




    1. FirstWoman.SetAge (28);

3 9:



  1. FirstMan.IntroduceSelf() ;




  1. FirstWoman.IntroduceSelf();




  1. }



Результат


I am Adam and am 30 years old


I am Eve and am 28 years old


Анализ

Строки 4-26 демонстрируют создание очень простого класса C++. Рассмотрим его с практической точки зрения, игнорируя термины и концепции, которые вы не понимаете с первого взгляда, поскольку подробно они обсуждаются далее на этом занятии. Сосредо­ точьтесь на структуре класса Human и его использовании в функции m ain ().


Этот класс содержит две закрытые ( p r iv a te ) переменные: одна типа s t r i n g по имени Name в строке 7, другая типа i n t по имени Аде в строке 8, а также несколько открытых ( p u b lic ) функций (называемых методами (method)): SetN am e (), S etA g e () и I n t r o ­ d u c e S e lf () в строках 11, 16 и 21, которые используют закрытые переменные. Строки 31



  1. 36 в функции m ain () создают два объекта класса Human соответственно. Следующие строки устанавливают значения переменных-членов объектов F irs tM a n и F irstW om an,

208 ЗАНЯТИЕ 9. Классы и объекты


используя методы SetName () и SetA ge (), которые называют методами доступа (accessor method). Обратите внимание, как в строках 40 и 41 вызов метода I n tr o d u c e S e l f () этих двух объектов позволил создать две разные строки в выводе, использующих переменные-члены (mem ber variable), значения которых были установлены в предыдущих строках.


Вы обратили внимание на ключевые слова p r i v a t e и p u b l i c в листинге 9.1? Пришло время изучить эти средства, предоставляемые языком C++, для защиты атрибутов, кото­ рые ваш класс должен оставить скрытыми от тех, кто их использует.





Download 1,38 Mb.

Do'stlaringiz bilan baham:
1   ...   147   148   149   150   151   152   153   154   ...   437




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©hozir.org 2024
ma'muriyatiga murojaat qiling

kiriting | ro'yxatdan o'tish
    Bosh sahifa
юртда тантана
Боғда битган
Бугун юртда
Эшитганлар жилманглар
Эшитмадим деманглар
битган бодомлар
Yangiariq tumani
qitish marakazi
Raqamli texnologiyalar
ilishida muhokamadan
tasdiqqa tavsiya
tavsiya etilgan
iqtisodiyot kafedrasi
steiermarkischen landesregierung
asarlaringizni yuboring
o'zingizning asarlaringizni
Iltimos faqat
faqat o'zingizning
steierm rkischen
landesregierung fachabteilung
rkischen landesregierung
hamshira loyihasi
loyihasi mavsum
faolyatining oqibatlari
asosiy adabiyotlar
fakulteti ahborot
ahborot havfsizligi
havfsizligi kafedrasi
fanidan bo’yicha
fakulteti iqtisodiyot
boshqaruv fakulteti
chiqarishda boshqaruv
ishlab chiqarishda
iqtisodiyot fakultet
multiservis tarmoqlari
fanidan asosiy
Uzbek fanidan
mavzulari potok
asosidagi multiservis
'aliyyil a'ziym
billahil 'aliyyil
illaa billahil
quvvata illaa
falah' deganida
Kompyuter savodxonligi
bo’yicha mustaqil
'alal falah'
Hayya 'alal
'alas soloh
Hayya 'alas
mavsum boyicha


yuklab olish