Professional Documents
Culture Documents
PDF 9
PDF 9
PDF 9
com
فصل ًْن
اّساف
ًحَُ استفازُ از يك پَشاًٌسُ پيشپرزازًسُ تراي اجتٌاب از ذطاّاي آشكار كِ تا كپي
كرزى تيش از يكثار فايل سرآيٌس زر فايل كس هٌثع تَجَز هيآيٌس.
آشٌايي تا هفَْم قلورٍ كالس ٍ زسترسي تِ اعضاء كالس از طريق ًام يك شي ،هراجعِ
تِ يك شي يا اشارُگر تِ يك شي.
تعريف سازًسُّا تا آرگَهاىّاي پيشفرض.
ًحَُ استفازُ از سازًسُّا تراي اًجام عوليات «ذاتوِ كار» تر رٍي يك شي قثل از
ًاتَز شسى ٍ از تيي رفتي آى.
زهاى فراذَاًي سازًسُّا ٍ ًاتَز كٌٌسُّا ٍ ترتية فراذَاًي آًْا.
ذطاّاي هٌطقي كِ تِ ٌّگام ترگشت زازى يك هراجعِ تِ زازُ privateتَسط يك
تاتع عضَ publicرخ هيزٌّس.
اًتصاب عضَّاي زازُ يك شي تِ عضَّاي يك شي زيگر تا ترصيص .Memberwise
www.yourshop.4kia.ir
www.Booknama.com
رئَس هطالة
هقسهِ 9-1
هثحج آهَزشي:كالس Time 9-2
قلورٍ كالس ٍ زسترسي تِ اعضاء كالس 9-3
جساسازي ٍاسط از پيازُسازي 9-4
تَاتع زسترسي ٍ تَاتع يَتيليتي 9-5
هثحج آهَزشي كالس :Timeسازًسُّا ّوراُ تا آرگَهاىّاي پيشفرض 9-6
ًاتَزكٌٌسُّا 9-7
زهاى فراذَاًي سازًسُّا ٍ ًاتَزكٌٌسُّا 9-8
هثحج آهَزشي كالس :Timeترگشت زازى يك هراجعِ تِ زازُ عضَ private 9-9
ترصيص Memberwise 9-11
استفازُ هجسز از ًرمافسار 9-11
هثحج آهَزشي هٌْسسي ًرمافسار :شرٍع ترًاهًَِيسي كالسّاي سيستن ATM 9-12
9-1هقسهِ
زض فػُٞبي لجّي ،ثٔ ٝقطفي ثطذي اظ ٔفبٞيٓ دبي ٝزض ثط٘بٔٛ٘ٝيسي ضيٌطا زض C++دطزاذشيٕٓٞ .چٙيٗ زض
اضسجبط ثب ضٚش ٚاسّٛة سٛسق ٚ ٝايؼبز ثط٘بٔٞٝبيٕبٖ غحجز وطزيٓ :غفبر ٚضفشبض ٔمشضي ثطاي ٞط
والس ضا ا٘شربة ٔيوٙيٓ ٚث ٝيه ضٚش ٔقيٗ ٔطرع ٔيسبظيٓ و ٝوساْ ضيٞب اظ والسٞبيٕبٖ ثب
ضيٞبي ٔٛػٛز زض وشبثرب٘ ٝوالسٞبي اسشب٘ساضز C++ثطاي ثطآٚضز ٜوطزٖ ٞط ٞسف ثط٘بٔٔ ٝيسٛا٘ٙس
ٕٞىبضي وٙٙس.
زض ايٗ فػٍُ٘ ،بٞي فٕيكسط ث ٝوالسٞب ذٛاٞيٓ زاضز .اظ والس يىذبضچ Time ٝثقٛٙاٖ يه ٔجحض
آٔٛظضي زض ايٗ فػُ (سٔ ٝظبَ) ٚفػُ ز( ٓٞزٔ ٚظبَ) اسشفبز ٜوطزٜايٓ سب ث ٝثيبٖ ضٚشٞبي ايؼبز والس
ثذطزاظيٓ .وبض ضا ثب يه والس Timeضطٚؿ ٔيوٙيٓ وٍ٘ ٝبٞي ٔؼسز ثط چٙسيٗ ٚيژٌي فطض ٝضس ٜزض
C++ فػُ ٞبي لجّي زاضش ٝثبضيٕٓٞ .چٙيٗ ايٗ ٔظبَ ث ٝسٛغيف يه ٔف ْٟٛاسبسي زض ٟٔٙسسي ٘طْافعاض
يقٙي «دٛضب٘ٙس ٜديص دطزاظ٘س »ٜزض اضسجبط ثب فبيّٟبي سطآيٙس ٔيدطزاظز سب اظ لطاض ٌطفشٗ ثيص اظ يىجبض وس
سطآيٙس زض ٕٞبٖ فبيُ وس ٔٙجـ ػٌّٛيطي ضٛز .ظٔب٘يى ٝيه والس ثشٛا٘س فمظ يىجبض سقطيف ضٛز ،اسشفبزٜ
اظ چٙيٗ زسشٛضزٙٞسٜٞبي ديصدطزاظ٘س ٜاظ ٚلٛؿ ذغبٞبي آضىبض ٔشقسز ػٌّٛيطي ٔيوٙس.
سذس زض اضسجبط ثب لّٕط ٚوالس ٚضاثغٛٔ ٝػٛز ٔبثيٗ افضبي والس غحجز ذٛاٞيٓ وطزٕٞ .چٙيٗ ثٝ
سٛضيح ايٙى ٝچٍ ٝ٘ٛوس سطٚيسٌيط٘سٔ ٜيسٛا٘س ث ٝافضبي publicوالس اظ عطيك سٛ٘ ٝؿ «زسشٍيط»ٜ
(٘بْ ضئ ،طاػق ٝث ٝضي يب اضبضٌٜط ث ٝضي) زسشطسي ديسا وٙس ،ذٛاٞيٓ دطزاذزٕٞ .ب٘غٛضي و ٝذٛاٞيس
www.yourshop.4kia.ir
www.Booknama.com
زيس ،اسبٔي ضي ٔ ٚطاػقٞٝب ٔيسٛا٘ٙس ثٕٞ ٝطا ٜفٍّٕط ا٘شربة فض ).( ٛزض زسشطسي ث ٝافضبي ٚ public
اضبضٌٜطٞب ٔيسٛا٘ٙس ثب فٍّٕط ا٘شربة فض )->( ٛثىبض ٌطفش ٝض٘ٛس .زض ٔٛضز سٛاثـ زسشطسي ؤ ٝيسٛا٘ٙس
ٔجبزضر ث ٝذٛا٘سٖ يب ٕ٘بيص زاز ٜاظ يه ضي ٕ٘بيٙس غحجز ذٛاٞيٓ وطز .يىي اظ ضٚشٞبي ضايغ زض
اسشفبز ٜاظ سٛاثـ زسشطسي ثطضسي ضططٞب ثِ ٝحبػ ثطلطاض يب ثطلطاض ٘جٛزٖ (زضسز ٚغّظ) اسزٕٞ ،ب٘ٙس
سٛاثقي و ٝثقٛٙاٖ سٛاثـ ذجط ٜضٙبذشٔ ٝي ض٘ٛسٕٞ .چٙيٗ ث ٝثطضسي ٔف٘ ٚ ْٟٛؾطي ٝيه سبثـ يٛسيّيشي (و ٝسبثـ
وٕىي ٘ ٓٞبٔيسٔ ٜيضٛز) ٔيدطزاظيٓ و ٝيه سبثـ فض private ٛاسز و ٝاظ فّٕيبر سٛاثـ فض ٛوالس
publicدطشيجب٘ي ٔيوٙس ،أب ٘بٔعز اسشفبز ٜسٛسظ سطٚيسٌيط٘سٜٞبي والس ٘يسز.
زض زٔٚيٗ ٔظبَ اظ والس ،Timeث ٝثطضسي ٘ح ٜٛاضسبَ آضٌٔٛبٖٞب ث ٝسبظ٘سٜٞب ٕ٘ ٚبيص ٘ح ٜٛاسشفبز ٜاظ
آضٌٔٛبٖ ديصفطؼ زض يه سبظ٘سٔ ٜيدطزاظيٓ و ٝث ٝوس سطٚيسٌيط٘س ٜأىبٖ ٔمساضزٞي اِٚي ٝضيٞبي
يه والس ضا ثب اسشفبز ٜاظ آضٌٔٛبٖٞبي ٌ٘ٛبٌ ٖٛضا ٔيزٙٞس .سذس زض ٔٛضز يه سبثـ فض ٛذبظ ثٙبْ
سبظ٘س ٜغحجز ٔيوٙيٓ و ٝثرطي اظ ٞط والس ثٛز ٚ ٜثطاي ا٘ؼبْ «ذبسٕ ٝوبض» ثط ضٚي يه ضي لجُ اظ
ايٙى ٝآٖ ضي ٘بثٛز ضٛز ثىبض ٌطفشٔ ٝيضٛز .سذس ث ٝثطضسي سطسيت فطاذٛا٘ي سبظ٘سٜٞب ٘ ٚبثٛزوٙٙسٜٞب
ٔيدطزاظيٓ ،چطا و ٝفّٕىطز غحيح ثط٘بٔ ٝثسشٍي ثٔ ٝمساضزٞي زضسز ضيٞبي زاضز وٛٙٞ ٝظ ٘بثٛز
٘طسٜا٘س .آذطيٗ ٔظبِي و ٝزض ثحض آٔٛظضي والس Timeزض ايٗ فػُ ٔغطح ضس ،ٜث ٝثطضسي ذغطاسي
ٔيدطزاظز و ٝاظ ضقف ثط٘بٔٛ٘ٝيسي حبغُ ٔيض٘ٛس و ٝزض ايٗ ٔٛضز يه سبثـ فض ٛيه ٔطاػق ٝث ٝزازٜ
privateثطٌطز ٔيزٞسٕٞ .چٙيٗ سٛضيح ذٛاٞيٓ زاز و ٝچٍ ٝ٘ٛايٙىبض ٔيسٛا٘س سجت اظ ٌٓٞسيرشٍي
وذس َٛوالس ضس ٚ ٜث ٝوس سطٚيسٌيط٘س ٜاػبظ ٜزٞس سب ثغٛض ٔسشميٓ ث ٝزاز ٜضي زسشطسي ديسا وٙس .ايٗ
ٔظبَ ٘طبٖ ٔيزٞس و ٝضيٞبي اظ يه والس ٔيسٛا٘ٙس ثب اسشفبز ٜاظ سرػيع memberwiseث ٝزيٍطي
سرػ يع زاز ٜض٘ٛس ،و ٝزض آٖ افضبي زاز ٜزض ضي لطاض ٌطفش ٝزض سٕز ضاسز فٍّٕط سرػيع ثٝ
افضبي زازٔ ٜشٙبؽط لطاض ٌطفش ٝزض سٕز چخ فٍّٕط سرػيع ،ا٘شسبة زازٔ ٜيض٘ٛسٕٞ .چٙيٗ ايٗ فػُ
حبٚي ثحظي زض اضسجبط ثب اسشفبزٔ ٜؼسز اظ ٘طْافعاض اسز.
9-2هثحج آهَزشي :كالس Time
زض اِٚيٗ ٔظبَ (ضىُٞبي 9-3اِي ٔ )9-1جبزضر ث ٝايؼبز والس ٚ Timeيه ثط٘بٔ ٝضاٜا٘ساظ ثطاي سسز
والس ٔيوٙيٓ .سب ثسيٗ ٔطحّ ٝاظ وشبة چٙسيٗ والس ايؼبز وطزٜايٓ .زض ايٗ ثرصٍ٘ ،بٞي ثط ٔفبٞيٓ
C++ فطض ٝضس ٜزض فػُ س ٚ ْٛثيبٖ إٞيز اسشفبز ٜاظ «دٛضب٘ٙس ٜديصدطزاظ٘س »ٜزض ٟٔٙسسي ٘طْافعاض
ذٛاٞيٓ زاضز .ظٔب٘يى ٝوالسي ثشٛا٘س فمظ يىجبض سقطيف ضٛز ،اسشفبز ٜاظ چٙيٗ زسشٛضزٙٞسٜٞبي
ديصدطزاظ٘س ٜاظ ٚلٛؿ ذغبٞبي آضىبض ٔضبفف ػٌّٛيطي ذٛاٞس وطز.
1 // Fig. 9.1: Time.h
2 // Declaration of class Time.
www.yourshop.4kia.ir
www.Booknama.com
www.yourshop.4kia.ir
www.Booknama.com
" #endif ٚ )definedاػشٙبة ضٛز اٌط ضبُٔ ٘بْ TIME_Hثٛز ٚ ٜسقطيف ضس ٜثبضس .اٌط سطآيٙس لجالً زض
فبيّي ثىبض ٌطفش٘ ٝطس ٜثبضس٘ ،بْ TIME_Hسٛسظ زسشٛض زٙٞس #define ٜسقطيف ضس ٚ ٜفبيُ سطآيٙس ثىبض
ٌطفش ٝذٛاٞس ضس .اٌط سطآيٙس لجالً اسشفبز ٜضس ٜثبضس TIME_Hسقطيف ضس ٚ ٜفبيُ سطآيٙس ٔؼسزاً زض
ثط٘بٔٚ ٝاضز ٘رٛاٞس ضس.
اجتٌاب از ذطا
اظ زسشٛضزٙٞسٜٞبي ديصدطزاظ٘س #endif ٚ #define ،#ifndef ٜثقٛٙاٖ دٛضب٘ٙس ٜديصدطزاظ٘س ٜاسشفبز ٜوٙيس
سب اظ ٚاضز وطزٖ ثيص اظ يىجبض فبيّٟبي سطآيٙس ث ٝثط٘بٔ ٝػٌّٛيطي ضٛز.
ترًاهًَِيسي ايسُال
زض ٘بْ فبيُ سطآيٙس اظ حطٚف ثعضي ثٕٞ ٝطا٘ ٜمغ ٝثؼبي ذظ ظيطيٗ زض زسشٛضزٙٞسٜٞبي ديصدطزاظ٘سٜ
#define ٚ #ifndefاظ يه فبيُ سطآيٙس اسشفبز ٜوٙيس.
تَاتع عضَ كالس Time
زض ثط٘بٔ ٝضىُ ،9-1سبظ٘س Time ٜزض ذغٛط ٔ 14-17جبزضر ثٔ ٝمساضزٞي اِٚي ٝافضبي زاز ٜثب غفط
وطز ٜاسز (يقٙي ظٔبٖ ػٟب٘ي ٔقبزَ ثب .)12 AMثب ايٙىبض ٔغٕئٗ ذٛاٞيٓ ضس و ٝضي وبض ذٛز ضا اظ يه
ٚضقيز يب حبِز دبيساض آغبظ ذٛاٞس وطزٔ .مبزيط اضشجب ٜيب ٘بٔقشجط ٕ٘يسٛا٘ٙس زض افضبي زاز ٜيه ضي
Timeشذيط ٜض٘ٛس ،چطا و ٝسبظ٘س ٜثٍٙٞ ٝبْ ايؼبز ضي Timeفطاذٛا٘ي ضس ٚ ٜسٕبْ فقبِيزٞبي و ٝسٛسظ
يه سطٚيسٌيط٘س ٜثٙٔ ٝؾٛض سغييط زازٖ افضبي زاز ٜغٛضر ٔيٌيطز ،سٛسظ سبثـ setTimeثسلز
ثطضسي ٔيضٛز .سٛػ ٝث ٝايٗ ٘ىش ٟٓٔ ٝاسز و ٝثط٘بٔٛ٘ٝيس لبزض ث ٝسقطيف چٙسيٗ سبظ٘س ٜسطثبضٌصاضي
ضس ٜثطاي يه والس ثبضس.
1 // Fig. 9.2: Time.cpp
2 // Member-function definitions for class Time.
3 >#include <iostream
4 ;using std::cout
5
6 >#include <iomanip
7 ;using std::setfill
8 ;using std::setw
9
10 #include "Time.h" // include definition of class Time from Time.h
11
12 // Time constructor initializes each data member to zero.
13 // Ensures all Time objects start in a consistent state.
14 )(Time::Time
15 {
16 ;hour = minute = second = 0
17 } // end Time constructor
18
19 // set new Time value using universal time; ensure that
20 // the data remains consistent by setting invalid values to zero
21 ) void Time::setTime( int h, int m, int s
22 {
23 hour = ( h >= 0 && h < 24 ) ? h : 0; // validate hour
24 minute = ( m >= 0 && m < 60 ) ? m : 0; // validate minute
25 second = ( s >= 0 && s < 60 ) ? s : 0; // validate second
26 } // end function setTime
27
www.yourshop.4kia.ir
www.Booknama.com
www.yourshop.4kia.ir
www.Booknama.com
ٔحسٚز ٠اسز ،دس فمظ ( hourسبفز) زض غٛضسي غحيح ذٛاٞس ثٛز و ٝظٔبٖ ػبضي ٕٞعٔبٖ ثب ٘يٕٝ
ضت ثبضس.
سبثـ ( printUniversalذغٛط 29-33اظ ضىُ ٞ )9-1يچ آضٌٔٛب٘ي زضيبفز ٕ٘يوٙس ٚسبضيد ضا ثطحست
فطٔز ػٟب٘ي ظٔبٖٔ ،شطىُ اظ س ٝػفز ؤ ِٗٛشٕبيع وٙٙس ٜاضلبْ ثطاي سبفز ،زليم ٚ ٝطب٘ي ٝچبح ٔيوٙس.
ثطاي ٔظبَ اٌط ظٔبٖ 1:30:07PMثبضس ،سبثـ ٔ printUniversalمساض 13:30:07ثطٌطز ٔيزٞس .زلز
وٙيس و ٝزض ذظ 31اظ سبثـ setfillثطاي ٔطرع وطزٖ وبضاوشط دطوٙٙس ٜاسشفبز ٜضس ٜاسز ؤ ٝجبزضر ثٝ
ٕ٘بيص يه ٔمساض غحيح زض ذطٚػي زض يه فيّس ثؼبي اضظش فسزي اظ اضلبْ ٔيوٙس .ثغٛض ديصفطؼ،
minute وبضاوشطٞبي دطوٙٙس ٜزض سٕز چخ اضلبْ يه فسز ؽبٞط ٔيض٘ٛس .زض ايٗ ٔظبَ ،اٌط ٔمساض
(زليم )ٝثطاثط 2ثبضس ،ثػٛضر 02ثٕ٘ ٝبيص زض ذٛاٞس آٔس ،چطا و ٝوبضاوشط دطوٙٙس ٜثب غفط (' )'0سٙؾيٓ
ضس ٜاسز .اٌط فسزي و ٝلطاض اسز زض ذطٚػي لطاض ٌيطز وُ فيّس سقييٗ ضس ٜضا زض ثطٌيطز ،وبضاوشط
دطوٙٙس ٜثٕ٘ ٝبيص زض ٘رٛاٞس آٔس .سٛػ ٝوٙيس ظٔب٘يى ٝوبضاوشط دطوٙٙس ٜثب ٕٞ setfillطأ ٜيضٛز ،ايٗ
وبضاوشط ثط ضٚي ٔبثمي ٔمبزيطي و ٝزض دٟٙبي آٖ فيّس ثٕ٘ ٝبيص زض ذٛاٙٞس آٔس ٓٞ ،افٕبَ ذٛاٞس ٌطزيس.
٘مغٔ ٝمبثُ آٖ setwاسز و ٝفمظ ثط ضٚي ٔمساض ثقسي ثٕ٘ ٝبيص زض آٔس ٜافٕبَ ٔيضٛز.
سبثـ( printStandardذغٛط ٞ )36-41يچ آضٌٔٛب٘ي زضيبفز ٕ٘يوٙس ٚسبضيد ضا زض فطٔز اسشب٘ساضز
ظٔب٘ي ةٕ٘ ٜبيص زض ٔيآٚضز .ايٗ فطٔز ٔشطىُ اظ ٔمبزيط سبفز ،زليم ٚ ٝطب٘ي ٝاسز و ٝسٛسظ وِٞٗٛبي
و ٝثس٘جبَ آٖ AMيب PMلطاض زاضز اظ ٓٞػسا ضسٜا٘س (ٔب٘ٙس ٕٞ .)1:27:06 PMب٘ٙس سبثـ
printUniversalسبثـ printStandardاظ )' setfill('0ثطاي لبِتثٙسي زليم ٚ ٝطب٘ي ٝثقٛٙاٖ زٔ ٚمساض
ضلٕي ثب ز٘جبِ ٝغفط زض غٛضر ٘يبظ اسشفبز ٜوطز ٜاسز .زض ذظ 38اظ فٍّٕط ضطعي ) (?:ثطاي سقييٗ
ٕ٘بيص ٔمساض سبفز اسشفبز ٜضس ٜاسز .اٌط سبفز ثطاثط 0يب AM( 12يب )PMثبضس ثػٛضر ٚ 12زض غيط
ايٙػٛضر سبفز ثػٛضر ٔمساضي اظ 1سب 11ثٕ٘ ٝبيص زض ذٛاٞس آٔس .فٍّٕط ضطعي ثىبض ضفش ٝزض ذظ
40سقييٗ ٔيوٙس و ٝآيب AMيب PMثٕ٘ ٝبيص زضآيس يب ذيط.
تعريف تَاتع عضَ ذارج از تعريف كالس :قلورٍ كالس
حشي زض غٛضسيى ٝيه سبثـ فض ٛزض سقطيف والسي افالٖ ضس ٜثبضس ٔيسٛا٘س زض ذبضع اظ سقطيف والس،
سقطيف ٌطزز ( ٚث ٝوالس اظ عطيك فٍّٕط ثبيٙطي سفىيه لّٕطٔ ٚطسجظ ضٛز) ،وٛٙٞ ٝظ ٓٞسبثـ فض ٛزض
زض ٖٚلّٕط ٚوالس لطاض ذٛاٞس زاضز ،ث ٝايٗ ٔقٙي و٘ ٝبْ سبثـ فمظ سٛسظ افضبي زيٍط والس ضٙبذشٝ
ضس ٜذٛاٞس ثٛز ٍٔط ايٙى ٝاظ عطيك ضيي اظ والس ٔٛضز ٔطاػق ٝلطاض ٌيطز يب اضبضٌٜطي ث ٝيه ضي اظ
والس يب فٍّٕط ثبيٙطي سفىيه لّٕط ٚثىبض ٌطفش ٝضٛز.
www.yourshop.4kia.ir
www.Booknama.com
اٌط سبثـ فضٛي زض ثس٘ ٝيه والس سقطيف ضس ٜثبضس ،وبٔذبيّط ٔ C++جبزضر ث ٝفطاذٛا٘ي inlineآٖ سبثـ
ذٛاٞس وطز .سٛاثـ فض ٛسقطيف ضس ٜزض ذبضع اظ سقطيف والس ٔيسٛا٘ٙس ثػٛضر غطيح ٚذغي ٚ
سٛسظ وّٕ ٝوّيسي inlineفطاذٛا٘ي ض٘ٛس.
تَاتع عضَ زر هقاتل تَاتع سراسري
٘ىش ٝػبِت سٛػ ٝزض ايٗ اسز و ٝسٛاثـ فضٞ printStandard ٚ printUniversal ٛيچ آضٌٔٛب٘ي
زضيبفز ٕ٘يوٙٙس .ث ٝايٗ زِيُ و ٝايٗ سٛاثـ فض ٛثػٛضر غيطغطيح ٔيزا٘ٙس و ٝثبيس افضبي زاز ٜضي
Timeضا ثٍٙٞ ٝبْ فقبَ ضسٖ چبح وٙٙس .چٙيٗ فّٕي فطاذٛا٘ي سٛاثـ فض ٛضا ث٘ ٝسجز سٛاثـ فبزي زض
ثط٘بٔٛ٘ ٝيسي ضٚاِي ثسيبض ٔرشػط ٔيوٙس.
استفازُ از كالس Time
دس اظ ايٙى ٝوالس Timeسقطيف ضسٔ ،يسٛاٖ اظ آٖ ثقٛٙاٖ يه ٘ٛؿ زض افالٖ ضي ،آضاي ٚ ٝاضبضٌٜط
ثػٛضر ظيط اسشفبز ٜوطز:
Time sunset; // object of type Time
Time arrayOfTimes [5], // array of 5 Time objects
Time &dinnerTime = swnset; // reference to a Time object
Time *timePtr = &dinnerTime, // pointer to a Time object
زض ثط٘بٔ ٝضىُ 9-3اظ والس Timeاسشفبز ٜضس ٜاسز .ذظ ٔ 12جبزضر ثٕٝ٘ٛ٘ ٝسبظي يه ضي ٔٙفطز اظ
والس Timeثٙبْ ٔ tيوٙس .ظٔب٘يى ٝيه ضي ٔقطفي ٔيضٛز ،سبظ٘س Time ٜثطاي ٔمساضزٞي اِٚيٞ ٝط زازٜ
فض private ٛثب غفط فطاذٛا٘ي ٔيضٛز سذس ،ذغٛط 18 ٚ 16ظٔبٖ ضا ثب فطٔزٞبي اسشب٘ساضز ٚػٟب٘ي
ثطاي سبييس ايٙى ٝافضب ثسضسشي ٔمساضزٞي اِٚي ٝضسٜا٘س چبح ٔيوٙٙس .ذظ ٔ 20جبزضر ث ٝسٙؾيٓ ظٔبٖ
ػسيس ثب فطاذٛا٘ي سبثـ فض setTime ٛوطز ٚ ٜذغٛط ٔ 26 ٚ 24ؼسزاً ظٔبٖ ضا زض ٞط ز ٚفطٔز چبح
ٔيوٙٙس .ذظ ٔ 28جبزضر ث ٝاسشفبز ٜاظ سبثـ setTimeثطاي سٙؾيٓ افضبي زاز ٜثب ٔمبزيط اضشجبٔ ٜيوٙس .زض
ايٙحبِز سبثـ setTimeايٗ اضشجب ٜضا سطريع زازٔ ٚ ٜمبزيط اضشجب ٜضا ثب غفط سٙؾيٓ ٔيٕ٘بيس سب ضي زض يه
ٚضقيز سبظٌبض (دبيساض) ثبلي ثٕب٘س .سطا٘ؼبْ ،ذغٛط 35 ٚ 33ظٔبٖ ضا زض ٞط ز ٚفطٔز چبح ٔيوٙٙس.
ًگاّي جلَتر تركية ٍ تَارث
غبِجبً ،والسٞب ٔؼجٛض ٘يسشٙس اظ «اثشسا» ايؼبز ض٘ٛس .ثؼبي آٖ ٔيسٛا٘ٙس حبٚي ضيٞبي اظ والسٞبي زيٍط
ثقٛٙاٖ افضب ثبضٙس يب ٔيسٛا٘س اظ والسٞبي زيٍط ٔطشك ض٘ٛس سب غفبر ٚضفشبضٞبي ثطاي اسشفبزٜ
والسٞبي ػسيس فطا ٓٞآٚض٘س .چٙيٗ لبثّيشي و ٝثقٛٙاٖ اسشفبزٔ ٜؼسز اظ ٘طْافعاض ضٙبذشٔ ٝيضٛز ٔيسٛا٘س
زض ٍٟ٘ساضي وس ٚوبضايي ثط٘بٔٛ٘ٝيسي ٘مص ٕٟٔي ثبظي وٙسٚ .اضز وطزٖ ضيٞبي والس ثقٛٙاٖ افضبي
والسٞبي زيٍط ،سطويت (يب سؼٕـ) ٘بٔيسٔ ٜيضٛز ٚزض فػُ ز ٓٞسٛضيح زاز ٜضس ٜاسزٔ .طشك وطزٖ
والسٞبي ػسيس اظ والسٞبي ٔٛػٛز ،سٛاضص ٘بٔيسٔ ٜيضٛز ٚزض فػُ زٚاظز ٓٞث ٝسٛضيح آٖ دطزاذشٝ
ضس ٜاسز.
www.yourshop.4kia.ir
www.Booknama.com
www.yourshop.4kia.ir
www.Booknama.com
زض زض ٖٚلّٕط ٚيه والس ،افضبي والس ثالزضً٘ سٛسظ سٕبْ سٛاثـ فض ٛوالس زض زسشطس ثٛزٚ ٜ
ٔي سٛا٘س سٛسظ ٘بْ ٔٛضز ٔطاػق ٝلطاض ٌيط٘س .ذبضع اظ لّٕط ٚوالس ،افضبي والس publicاظ عطيك يه
زسشٍيط ٜيب ٙٞسَ ث ٝضيٛٔ ،ضز ٔطاػق ٝلطاض ٔيٌيط٘سٛ٘ .ؿ ضئ ،طاػق ٝيب اضبضٌٜط سػطيح وٙٙسٚ ٜاسظ
زسشطس دصيط ثطاي سطٚيسٌيط٘سٞ ٜسشٙس.
سٛاثـ فض ٛيه والس ٔي سٛا٘ٙس سطثبضٌصاضي ض٘ٛس ،أب فمظ سٛسظ سٛاثـ فض ٛزيٍط آٖ والس چٙيٗ
وبضي أىبٖ دصيط اسز .ثطاي سطثبضٌصاضي يه سبثـ فض ،ٛوبفيسز زض سقطيف والس يه ٕ٘ ٝ٘ٛاِٚيٝ
ثطاي ٞط ٘سر ٝاظ سبثـ سطثبضٌصاضي ضس ٜسساضن زيس ٚيه سقطيف سبثـ ٔؼعا ثطاي ٞط ٘سر ٝاظ سبثـ زض ٘ؾط
ٌطفز.
ٔشغيطٞبي افالٖ ضس ٜزض يه سبثـ فض ٛزاضاي لّٕط ٚثّٛوي ثٛز ٚ ٜفمظ زض آٖ سبثـ ضٙبذشٔ ٝيض٘ٛس .اٌط
يه سبثـ فضٔ ،ٛشغيطي ثب ٕٞبٖ ٘بْ ثقٛٙاٖ ٔشغيط ثب لّٕط ٚوالس سقطيف ٕ٘بيسٔ ،شغيط لطاض ٌطفش ٝزض لّٕطٚ
والس سٛسظ ٔشغيط لّٕط ٚثّٛوي زض لّٕط ٚثّٛن دٟٙبٖ ذٛاٞس ضس .ث ٝچٙيٗ ٔشغيط دٟٙبٖ ضسٜاي ٔيسٛاٖ ثب
لطاض زازٖ ٘بْ ٔشغيط لجُ اظ ٘بْ والس ثٕٞ ٝطا ٜفٍّٕط سفىيه لّٕط ):( ٚزسشطسي ديسا وطزٔ .شغيطٞبي دٟٙبٖ
ضس ٜسطاسطي ٔيسٛا٘ٙس ثب اسشفبز ٜاظ فٍّٕط غيطثبيٙطي سفىيه لّٕط ٚزض زسشطس لطاض ٌيط٘س (فػُ ضطٓ).
ثب اسشفبز ٜاظ فٍّٕط ا٘شربة فض ).( ٛلجُ اظ ٘بْ يه ضي يب ثب ٔطاػق ٝث ٝيه ضي ٔيسٛاٖ ث ٝافضبي ضي
زسشطسي ديسا وطز .اسشفبز ٜاظ فٍّٕط ا٘شربة فض )->( ٛلجُ اظ يه اضبضٌٜط ث ٝيه ضي ٔيسٛاٖ ثٝ
افضبي ضي زسشطسي ديسا وطز.
زض ثط٘بٔ ٝضىُ 9-4اظ يه والس سبز ٜثٙبْ Countزض ذغٛط 8-25ثٕٞ ٝطا ٜفض ٛزاز private ٜثٙبْ x
print اظ ٘ٛؿ ( intذظ ،)24سبثـ فض public ٛثٙبْ ( setXذغٛط ٚ )12-15سبثـ فض public ٛثٙبْ
(ذغٛط ) 18-21اسشفبز ٜضس ٜسب ث ٝسٛضيح ٘ح ٜٛزسشطسي ث ٝافضبي يه والس ثب اسشفبز ٜاظ فٍّٕطٞبي
ا٘شربة فض ٛثذطزاظيٓ .ثطاي سبزٜسط ضسٖ ٔٛضٛؿ ،ايٗ والس وٛچه ضا زض ٕٞبٖ فبيُ سبثـ mainلطاض
زازٜايٓ و ٝاظ آٖ اسشفبز ٜوٙس .زض ذغٛط 29-31سٔ ٝشغيط ٔطسجظ ثب ٘ٛؿ Countثٙبْٞبي ( counterيه
ضي ( counterPtr ،)Countيه اضبضٌٜط ث ٝضي ( counterRef ٚ )Countيه ٔطاػق ٝث ٝضي )Count
ايؼبز ضس ٜاسزٔ .شغيط counterRefثٔ counter ٝطاػق ٝزاضز ٔ ٚشغيط counterPtrث counter ٝاضبضٜ
ٔيوٙس .زض ذغٛط 38-39 ٚ 34-35سٛػ ٝوٙيس و ٝثط٘بٔٔ ٝيسٛا٘س سٛاثـ فض print ٚ setX ٛضا ثب اسشفبزٜ
اظ فٍّٕط ٘مغ ٝا٘شربة فض ).( ٛثٕٞ ٝطا٘ ٜبْ ضي ) (counterيب ٔطاػقٝاي ث ٝضي ( counterRefو٘ ٝبْ
زيٍط counterاسز) فطاذٛا٘ي وٙس .ثٕٞ ٝيٗ سطسيت ،ذغٛط ٘ 42-43طبٖ ٔيزٙٞس و ٝثط٘بٔٔ ٝيسٛا٘س
سٛاثـ فض print ٚ setX ٛضا ثب اسشفبز ٜاظ يه اضبضٌٜط ) ٚ (countPtrفٍّٕط ا٘شربة فض)->( ٛ
فطاذٛا٘ي ٕ٘بيس.
www.yourshop.4kia.ir
www.Booknama.com
www.yourshop.4kia.ir
www.Booknama.com
اِجش ٝايٙىبض ثٕٞ ٝيٗ سبزٌي ٘ ٓٞيسز .سطآيٙس حبٚي ثطذي اظ لسٕزٞبي ديبزٜسبظي ثٛز ٚ ٜاضبض ٜثسيبض
ػعئي ث ٝزيٍطاٖ زاض٘س .ثطاي ٔظبَ ،سٛاثـ فض( Inline ٛذغي)٘ ،يبظ زاض٘س زض يه فبيُ سطآيٙس لطاض زاضشٝ
ثبضٙس ،اظ ايٙطٚسز و ٝثٍٙٞ ٝبْ وبٔذبيُ ضسٖ يه سطٚيسٌيط٘س ،ٜسطٚيسٌيط٘سٔ ٜيسٛا٘س حبٚي سقطيف
سبثـ inlineثبضس .افضبي privateيه والس زض فبيُ سطآيٙس سقطيف والس ِيسز ٔيض٘ٛس ،اظ
ايٙطٚسز و ٝايٗ افضب زض زيس سطٚيسٌيط٘سٜٞب لطاض زاض٘س حشي اٌط سطٚيسٌيط٘سٜٞب لبزض ث ٝزسشطسي ثٝ
افضبي ٘ privateجبضٙس .زض فػُ ز ،ٓٞثب ٘ح ٜٛاسشفبز ٜاظ «والس دطٚوسي» ثطاي دٟٙبٖ وطزٖ زازٜ
privateيه والس اظ زيس سطٚيسٌيط٘سٜٞب آضٙب ذٛاٞيس ضس.
9-5تَاتع زسترسي ٍ تَاتع يَتيليتي
سٛاثـ زسشطسي لبزض ث ٝذٛا٘سٖ ٕ٘ ٚبيص زازٜٞب ٞسشٙس .يىي زيٍط اظ وبضثطزٞبي ضايغ سٛاثـ زسشطسي زض
سسز ثطلطاضي يب فسْ ثطلطاضي ضططٞب اسز ،ث ٝچٙيٗ سٛاثقي ،سٛاثـ ديطٍ ٛيب ٔسٙس ٔيٌٛيٙسٔ .ظبِي اظ يه
سبثـ ٔسٙس ٔيسٛا٘س سبثـ isEmptyثطاي ٞط والس حبُٔ ثبضس ،والسي و ٝلبزض ثٍٟ٘ ٝساضي ضيٞبي ٔشقسز
اسز٘ ،ؾيط يه ِيسز دي٘ٛسي ،يه دطش ٝيب غف .ثط٘بٔٔ ٝيسٛا٘س ثب سسز isEmptyلجُ اظ ٔجبزضر ثٝ
ذٛا٘سٖ ايشٓ زيٍطي اظ ضي حبُٔ ،اعٕيٙبٖ حبغُ وٙسٔ .يسٛاٖ اظ سبثـ ٔسٙس isFullثطاي سسز يه
والس حبٔ ُ اسشفبز ٜوطز ٚ ٜسقييٗ وطز و ٝآيب زاضاي فضبي اضبفي ٞسز يب ذيط .سٛاثـ ٔسٙس ٔٙبست ثطاي
والس ٔ Timeيسٛا٘س isPM ٚ isAMثبضس.
ثط٘بٔ ٝثىبض ضفش ٝزض ضىُٞبي 9-7اِي 9-5ث ٝسٛضيح ٔف ْٟٛيه سبثـ يٛسيّيشي (سبثـ وٕىي ٘ ٓٞبٔيسٜ
ٔيضٛز) ٔيدطزاظز .يه سبثـ يٛسيّيشي ثرطي اظ ٚاسظ publicيه والس ٘يسز ،سطػيحبً يه سبثـ فضٛ
privateاسز و ٝاظ فّٕيبر سٛاثـ فض ٛوالس publicدطشيجب٘ي ٔيوٙس .سٛاثـ يٛسيّيشي ٘بٔعز اسشفبز ٜاظ
سطٚيسٌيط٘سٜٞبي يه والس ٘يسشٙس (أب ٔيسٛا٘ٙس سٛسظ friendيه والس ثىبض ٌطفش ٝض٘ٛس،
ٕٞب٘غٛضيو ٝزض فػُ ز ٓٞضبٞس ذٛاٞيس ثٛز) .والس ( SalesPersonضىُ )9-5يه آضاي 12 ٝفٙػطي
اظ فطٚش زٚاظزٔ ٜب( ٝٞذظ ٛ٘ ٚ )16ؿ اِٚي ٝثطاي سبظ٘س ٜوالس ٚسٛاثـ فض ٛو ٝآضاي ٝضا زسشىبضي
ٔيوٙٙس ،افالٖ وطز ٜاسز.
1 // Fig. 9.5: SalesPerson.h
2 // SalesPerson class definition.
3 // Member functions defined in SalesPerson.cpp.
4 #ifndef SALESP_H
5 #define SALESP_H
6
7 class SalesPerson
8 {
9 public:
10 SalesPerson(); // constructor
11 void getSalesFromUser(); // input sales from keyboard
12 void setSales( int, double ); // set sales for a specific month
13 void printAnnualSales(); // summarize and print sales
14 private:
15 double totalAnnualSales(); // prototype for utility function
16 double sales[ 12 ]; // 12 monthly sales figures
www.yourshop.4kia.ir
www.Booknama.com
www.yourshop.4kia.ir
www.Booknama.com
46 void SalesPerson::printAnnualSales()
47 {
48 cout << setprecision( 2 ) << fixed
49 << "\nThe total annual sales are: $"
50 << totalAnnualSales() << endl; // call utility function
51 } // end function printAnnualSales
52
53 // private utility function to total annual sales
54 double SalesPerson::totalAnnualSales()
55 {
56 double total = 0.0; // initialize total
57
58 for ( int i = 0; i < 12; i++ ) // summarize sales results
59 total += sales[ i ]; // add month i sales to total
60
61 return total;
62 } // end function totalAnnualSales
. SalesPerson تعريف تاتع عضَ كالس | 9-6 شكل
1 // Fig. 9.7: fig09_07.cpp
2 // Demonstrating a utility function.
3 // Compile this program with SalesPerson.cpp
4
5 // include SalesPerson class definition from SalesPerson.h
6 #include "SalesPerson.h"
7
8 int main()
9 {
10 SalesPerson s; // create SalesPerson object s
11
12 s.getSalesFromUser(); // note simple sequential code;
13 s.printAnnualSales(); // no control statements in main
14 return 0;
15 } // end main
Enter sales amount for month 1: 5314.76
Enter sales amount for month 2: 4292.38
Enter sales amount for month 3: 4589.83
Enter sales amount for month 4: 5534.03
Enter sales amount for month 5: 4376.34
Enter sales amount for month 6: 5698.45
Enter sales amount for month 7: 4439.22
Enter sales amount for month 8: 5893.57
Enter sales amount for month 9: 4909.67
Enter sales amount for month 10: 5123.45
Enter sales amount for month 11: 4024.97
Enter sales amount for month 12: 5923.92
يه ٔمساض ديصفطؼٜسٙٙ ٔطرع وٝ اسز وٜبي ديصفطؼ اسز افالٖ وطزٖٞٔبٌٛ ضبُٔ آضٝضا و
ٜ ػسيس اظ سبظ٘سٝ يه ٘سر14-17 طٛ ذغ،9-9 ُ زض ضى. اسزٜ سبظ٘سٝٔبٖ اضسبِي ثٌٛط آضٞ غفط ثطاي
www.yourshop.4kia.ir
www.Booknama.com
يٞ زض ٔمساضزٝس وٙ زضيبفز ٔيوsec ٚ min ،hr بيٞ ٔمبزيطي ثطاي دبضأشطٝا٘س وٜ سقطيف وطزTime
. وبضثطز زاض٘سٝ طب٘يٚ ٝ زليم، سبفزٜ افضبء زازِٝيٚا
1 // Fig. 9.8: Time.h
2 // Declaration of class Time.
3 // Member functions defined in Time.cpp.
4
5 // prevent multiple inclusions of header file
6 #ifndef TIME_H
7 #define TIME_H
8
9 // Time abstract data type definition
10 class Time
11 {
12 public:
13 Time( int = 0, int = 0, int = 0 ); // default constructor
14
15 // set functions
16 void setTime( int, int, int ); // set hour, minute, second
17 void setHour( int ); // set hour (after validation)
18 void setMinute( int ); // set minute (after validation)
19 void setSecond( int ); // set second (after validation)
20
21 // get functions
22 int getHour(); // return hour
23 int getMinute(); // return minute
24 int getSecond(); // return second
25
26 void printUniversal(); // output time in universal-time format
27 void printStandard(); // output time in standard-time format
28 private:
29 int hour; // 0 - 23 (24-hour clock format)
30 int minute; // 0 - 59
31 int second; // 0 - 59
32 }; // end class Time
33
34 #endif
. حاٍي يك سازًسُ تا آرگَهاىّاي پيشفرضTime | كالس9-8 شكل
. اسزٜ وطزٜ زازٛط فضٞ ثطايget ٚ set اثـٛ سساضن زيسٖ سٝ ٔجبزضر ثTime والسٝيس وٙ وٝػٛس
ٚ setMinute ،setHour اثـٛٓ سٞ ٖ آٚ سٙ ٔيوsetTime ا٘يٛ فطاذٝ الساْ ثTime ٜٖ سبظ٘سٛٙاو
بيٖٞٔبٌٛ آض.سٙا٘ي ٔيوٛ فطاذٜ افضبي زازٝ سرػيع ٔمبزيط ثٚ ؼيٙ ضا ثطاي افشجبض سsetSecond
،سٙ ثبضٜ ٘طسٝ زض ٘ؾط ٌطفشٜا٘ي سبظ٘سٛ حشي اٌط ٔمبزيط زض فطاذٝ ضا ٔغٕئٗ ٔيسبظ٘س وٜ سبظ٘س،ديصفطؼ
ساضيٍٟ٘ ضقيز دبيساضٚ ضا زض يهTime ا٘س ضيٛ ثبضس سب ثشٜ افضبي زازِٝيٚي اٞ ٔمساضزٝ لبزض ثٜسبظ٘س
،زٛة ٔيضٛ ديصفطؼ ٔحسٜ يه سبظ٘س،سٙسشٞ بي آٖ ديصفطؼٖٞٔبٌٛ سٕبْ آضٝاي وٜ سبظ٘س.سٙو
طٞ ديصفطؼ زضٜ حساوظط يه سبظ٘س.ا٘ي يب فقبَ ٌطززٛٔبٖ فطاذٌٖٛ آضٚا٘س ثسٛ ٔي سٝاي وٜي سبظ٘سٙيق
. ثبضسٝز زاضشٛػٚ ا٘سٛوالس ٔيس
1 // Fig. 9.9: Time.cpp
2 // Member-function definitions for class Time.
3 #include <iostream>
4 using std::cout;
5
6 #include <iomanip>
7 using std::setfill;
8 using std::setw;
9
www.yourshop.4kia.ir
www.Booknama.com
www.yourshop.4kia.ir
www.Booknama.com
زض ذظ 16اظ ضىُ ،9-9سبظ٘سٔ ٜجبزضر ث ٝفطاذٛا٘ي اظ سبثـ فض setTime ٛثب ٔمبزيط اضسبِي ث ٝسبظ٘سٜ
ٔيوٙس (يب ٔمبزيط ديصفطؼ) .سبثـ setTimeسبثـ setHourضا فطاذٛا٘ي ٔيوٙس سب ٕٔغئٗ ٌطزز ؤ ٝمساض
سساضن زيس ٜضس ٜثطاي سبفز زض ثبظ 0-23 ٜلطاض زاضز ،سذس سبثـ setSecond ٚ setMinuteثطاي
اعٕيٙبٖ اظ ايٙىٔ ٝمبزيط سساضن زيس ٜضس ٜثطاي زليم ٚ ٝطب٘ي٘ ٝيع زض ثبظ 0-59 ٜػبي زاض٘س ،فطاذٛا٘ي
ٔيض٘ٛس .اٌط ٔمساضي ذبضع اظ ٔحسٚز ٜثبضس ،آٖ ٔمساض ثب غفط سٙؾيٓ ٔيضٛز.
زلز وٙيس و ٝسبظ٘سٔ Time ٜي سٛا٘سز ثطاي زض ثطٌطفشٗ ٕٞبٖ فجبضار ثقٛٙاٖ سبثـ فض setTime ٛيب
حشي فجبضار ػساٌب٘ ٝزض سٛاثـ ٛ٘ setSecond ٚ setMinute ،setHourضش ٝضٛز .فطاذٛا٘ي ،setHour
setSecond ٚ setMinuteاظ عطيك سبظ٘سٔ ٜيسٛا٘س وٕي ٔٛططسط ٚالـ ضٛز چطا ؤ ٝيسٛا٘س فطاذٛا٘ي
ظيبز setTimeضا ثطعطف سبظز ٚحصف ٕ٘بيس .ثٕٞ ٝيٗ سطسيت ،وذي وس اظ ذغٛط 43 ٚ 31 ،37ثسٖٚ
سبظ٘سٔ ٜيسٛا٘س ٞعي ٝٙفطاذٛا٘ي setSecond ٚ setMinute ،setHour ،setTimeضا وبٞص زٞس .وس
٘ٛيسي سبظ٘س Time ٜيب سبثـ فض setTime ٛثقٛٙاٖ وذي اظ وس زض ذغٛط ٔ 43 ٚ 31 ،37يسٛا٘س ٍٟ٘ساضي
ايٗ والس ضا ثسيبض سرز ٕ٘بيس .اٌط ديبزٜسبظي setSecond ٚ setMinute ،setHourزچبض سغييط ضٛز،
ديبزٜسبظي ٞط سبثـ فض ٛو ٝزض ذغٛط 43 ٚ 31 ،37سىطاض ضسٜا٘س ٔ ٓٞشقبلت آٖ سغييط ذٛاٙٞس يبفز.
ثب ٔؼجٛض وطزٖ سبظ٘س Time ٜثطاي فطاذٛا٘ي ٔ ٚ setTimeؼجٛض وطزٖ setTimeثطاي فطاذٛا٘ي
setSecond ٚ setMinute ،setHourأىبٖ ٔيزٞس سب ٘يبظ ث ٝسغييط وسي ؤ ٝجبزضر ث ٝافشجبض سٙؼي
سبفز ،زليم ٚ ٝطب٘ئ ٝيوٙس ،ث ٝحسالُ ثطسسٕٞ .چٙيٗ وبضايي سبظ٘سٔ setTime ٚ Time ٜيسٛا٘س ثب افالٖ
غطيح آٟ٘ب ثػٛضر inlineيب سقطيف آٟ٘ب زض سقطيف والس افعايص يبثس.
ٟٔٙسسي ٘طْافعاضٞ :ط سغييطي زض ٔمبزيط آضٌٔٛبٖ ديصفطؼ يه سبثـ ٔسشّعْ وبٔذبيُ ٔؼسز وس
سطٚيسٌيط٘س ٜاسز.
هٌْسسي ًرمافسار
ٞط سغييطي زض ٔمبزيط آضٌٔٛبٖ ديصفطؼ يه سبثـ ٔسشّعْ وبٔذبيُ ٔؼسز وس سطٚيسٌيط٘س ٜاسز.
سبثـ mainزض ضىُ 9-11الساْ ثٔ ٝمساضزٞي اِٚي ٝدٙغ ضي ٔ Timeيوٙس .يىي ثب س ٝآضٌٔٛبٖ ديصفطؼ
زض فطاذٛا٘ي غيطغطيح سبظ٘س( ٜذظ ،)11يىي ثب يه آضٌٔٛبٖ ٔطرع ضس( ٜذظ ،)12يىي ثب زٚ
آضٌٔٛبٖ ٔطرع ضس( ٜذظ ،)13يىي ثب س ٝآضٌٔٛبٖ ٔطرع ضس( ٜذظ ٚ )14يىي ثب س ٝآضٌٔٛبٖ
اضشجبٔ ٜطرع ضس ٜزض ذظ .15سذس ثط٘بٔٞ ٝط ضي ضا زض فطٔز ظٔب٘ي اسشب٘ساضز ٚػٟب٘ي ثٕ٘ ٝبيص زض
ٔيآٚضز.
1 // Fig. 9.10: fig09_10.cpp
2 // Demonstrating a default constructor for class Time.
3 >#include <iostream
www.yourshop.4kia.ir
www.Booknama.com
4 using std::cout;
5 using std::endl;
6
7 #include "Time.h" // include definition of class Time from Time.h
8
9 int main()
10 {
11 Time t1; // all arguments defaulted
12 Time t2( 2 ); // hour specified; minute and second defaulted
13 Time t3( 21, 34 ); // hour and minute specified; second defaulted
14 Time t4( 12, 25, 42 ); // hour, minute and second specified
15 Time t5( 27, 74, 99 ); // all bad values specified
16
17 cout << "Constructed with:\n\nt1: all arguments defaulted\n ";
18 t1.printUniversal(); // 00:00:00
19 cout << "\n ";
20 t1.printStandard(); // 12:00:00 AM
21
22 cout << "\n\nt2: hour specified; minute and second defaulted\n ";
23 t2.printUniversal(); // 02:00:00
24 cout << "\n ";
25 t2.printStandard(); // 2:00:00 AM
26
27 cout << "\n\nt3: hour and minute specified; second defaulted\n ";
28 t3.printUniversal(); // 21:34:00
29 cout << "\n ";
30 t3.printStandard(); // 9:34:00 PM
31
32 cout << "\n\nt4: hour, minute and second specified\n ";
33 t4.printUniversal(); // 12:25:42
34 cout << "\n ";
35 t4.printStandard(); // 12:25:42 PM
36
37 cout << "\n\nt5: all invalid values specified\n ";
38 t5.printUniversal(); // 00:00:00
39 cout << "\n ";
40 t5.printStandard(); // 12:00:00 AM
41 cout << endl;
42 return 0;
43 } // end main
Constructed with:
t1: all arguments defaulted
00:00:00
12:00:00 AM
www.yourshop.4kia.ir
www.Booknama.com
زض يه فػُ دبيب٘ي ذٛاٞيس زيس ،فٍّٕط ٔس يه فٍّٕط ٔىُٕ ثيشي اسز ٚسب ا٘ساظٜاي يه ٘بثٛزوٙٙس،ٜ
ٔشٕٓ يه سبظ٘س ٜاسز .سٛػ ٝوٙيس و ٝغبِجب اظ ٘بثٛزوٙٙسٜٞب زض ٔمبالر ثقٛٙاٖ “ ”dtorيبز ٔيضٛزٔ .ب
سطػيح ٔيزٞيٓ و ٝاظ ايٗ وّٕ ٝاسشفبز٘ ٜىٙيٓ٘ .بثٛزوٙٙس ٜيه والس ثػٛضر سّٛيحي (غيطغطيح) ٚزض
ظٔبٖ اظ ثيٗ ضفشٗ ضي فطاذٛا٘ي ٔيضٛز .ثطاي ٔظبَ ،ايٗ اسفبق ثطاي ضيي ضخ ٔيزٞس و ٝثط٘بٔ ٝاظ لّٕط ٚوٝ
ضي زض آٖ ايؼبز ضس ٜذبضع ٌطزز .سٛػ ٝوٙيس و ٝذٛز ٘بثٛزوٙٙسٕ٘ ٜيسٛا٘س حبفؾ ٝاذص ضس ٜسٛسظ ضي ضا
آظاز سبظز ،ايٗ سبثـ فّٕيبر ذبسٕ ٝوبض ،لجُ اظ ايٙى ٝسيسشٓ حبفؾ ٝضي ضا ثبظدس ثٍيطز ٚاضز غحٝٙ
ٔيضٛز.
٘بثٛزوٙٙس ٜدبضأشط زضيبفز ٕ٘يوٙس ٔ ٚمساضي ثطٌطز ٕ٘يزٞس٘ .بثٛزوٙٙسٛ٘ ٜؿ ذبغي ضا ٓٞثطٌطز
ٕ٘يزٞس (حشي .)voidيه والس ٔيسٛا٘س فمظ يه ٘بثٛزوٙٙس ٜزاضش ٝثبضس٘ .بثٛزوٙٙس ٜضا ٕ٘يسٛاٖ
سطثبضٌصاضي وطز.
ذطاي ترًاهًَِيسي
اضسبَ آضٌٔٛبٖ ث ٝيه ٘بثٛزوٙٙس ،ٜسقييٗ ٘ٛؿ ثطٌطشي ث ٝيه ٘بثٛزوٙٙس ،ٜثطٌطز زازٖ ٔمساض
اظ يه ٘بثٛزوٙٙس ٜيب سطثبضٌصاضي آٖ ذغبي ٘حٛي اسز.
ثب ايٙى ٝسب ثسيٗ ػب ثطاي والسٞبي ٔقطفي ضس٘ ،ٜبثٛزوٙٙس ٜسساضن ٘سيسٜايٓ ،أب ٞط والسي زاضاي يه
٘بثٛزوٙٙس ٜاسز .اٌط ثط٘بٔٛ٘ ٝيس ثغٛض غطيح الساْ ث ٝسساضن زيسٖ يه ٘بثٛزوٙٙس٘ ٜىٙس ،ذٛز وبٔذبيّط
يه ٘بثٛزوٙٙس ٜسٟي ايؼبز ٔيوٙس .زض فػُ يبظز ،ٓٞالساْ ث ٝايؼبز ٘بثٛزوٙٙسٜٞبي ٔشٙبست ثب والسٞبيي
ذٛاٞيٓ و ٝضي ٞبي آٟ٘ب حبٚي حبفؾ ٝاذص ضس ٜزيٙبٔيىي ٞسشٙس (ٕٞب٘ٙس آضايٞٝب ٚضضشٞٝب) يب اظ ٔٙبثـ
زيٍط سيسشٓ اسشفبزٔ ٜيوٙٙس (ٕٞب٘ٙس فبيّٟب و ٝزض فػُ ٞفس ٓٞث ٝثطضسي آٟ٘ب ذٛاٞيٓ دطزاذز).
9-8زهاى فراذَاًي سازًسُّا ٍ ًاتَزكٌٌسُّا
سبظ٘سٜٞب ٘ ٚبثٛزوٙٙسٜٞب ثػٛضر غيطغطيح سٛسظ وبٔذبيّط فطاذٛا٘ي ٔيض٘ٛس .سطسيت فطاذٛا٘ي ايٗ سٛاثـ
ثسشٍي ثٝسطسيت ٚضٚز آٟ٘ب ثٔ ٝطحّ ٝاػطا ٚسطن لّٕط ٚزاضز و ٝضيٞب زض آٖ ٕ٘ٝ٘ٛسبظي ضسٜا٘س .ثغٛض
وّي ،فطاذٛا٘ي ٘بثٛزوٙٙسٜٞب ث ٝسطسيت ٔقىٛس اظ فطاذٛا٘ي سبظ٘سٜٞبي ٔمشضي غٛضر ٔيٌيطز ،أب
ٕٞب٘غٛضي و ٝزض ثط٘بٔٞٝبي ضىُ 9-11اِي 9-13ضبٞس ذٛاٞيس ثٛز ،والسٞبي شذيطٜسبظي ضيٞب
ٔيسٛا٘ٙس سطسيت فطاذٛا٘ي ٘بثٛزوٙٙسٜٞب ضا زض زچبض سغييط سبظ٘س.
فطاذٛا٘ي سبظ٘سٜٞبي ٔشقّك ث ٝضيٞبي سقطيف ضس ٜزض لّٕط ٚسطاسطي لجُ اظ ٞط سبثقي (ضبُٔ ٓٞ main
ٔيضٛز) غٛضر ٔيٌيط٘س٘ .بثٛزوٙٙسٜٞبي ٔشٙبؽط دس اظ اسٕبْ mainفطاذٛا٘ي ٔيض٘ٛس .سبثـ exitثط٘بٔٝ
ضا ٔؼجٛض ٔيوٙس سب ثالفبغّ ٚ ٝثس ٖٚاػطاي ٘بثٛزوٙٙس ٜثط ضٚي ضيٞبي اسٔٛبسيه ذبسٕ ٝيبثس .اظ ايٗ سبثـ
اغّت ثطاي ذبسٕ ٝزازٖ ث ٝثط٘بٔ ٝزض ظٔبٖٞبي و ٝذغبيي زض ٚضٚزي ٔطبٞس ٜضٛز يب ايٙى ٝفبيُ ٔٛضز ٘ؾط
www.yourshop.4kia.ir
www.Booknama.com
ثطاي دطزاظش ثبظ ٘طٛز اسشفبزٔ ٜيضٛز .سبثـ abortوبض ٔطبثٟي ثب سبثـ exitا٘ؼبْ ٔيزٞس ،أب ثط٘بٔ ٝضا
ثالفبغّٔ ٝؼجٛض ث ٝذبسٕٔ ٝيوٙس ثس ٖٚايٙى ٝث٘ ٝبثٛزوٙٙسٜاي ٞط ضي اػبظ ٜزٞس سب فطاذٛا٘ي ٌطز٘س.
ٔقٕٛالً اظ سبثـ abortثطاي سطريع ذبسٕ ٝغيطفبزي ثط٘بٔ ٝاسشفبزٔ ٜيضٛز.
سبظ٘س ٜثطاي يه ضي ٔحّي اسٔٛبسيه ظٔب٘ي فطاذٛا٘ي ٔيضٛز و ٝاػطا ثط٘بٔ ٝثٔ ٝىب٘ي ثطسس و ٝضي زض
آ٘ؼب سقطيف ضس ٜاسز٘ ،بثٛزوٙٙسٔ ٜشٙبؽط ٓٞظٔب٘ي فطاذٛا٘ي ٔيٌطزز و ٝاػطا ،لّٕط ٚضي ضا سطن
ٔيوٙس .سبظ٘سٜٞب ٘ ٚبثٛزوٙٙسٜٞبي ٔشقّك ث ٝضيٞبي اسٔٛبسيه زض ٞط ثبض ٚضٚز ٚذطٚع اػطاي ثط٘بٔ ٝثٝ
لّٕط ٚضي فطاذٛا٘ي ٔيض٘ٛس٘ .بثٛزوٙٙسٜٞب ثطاي ضيٞبي اسٔٛبسيه فطاذٛا٘ي ٕ٘يض٘ٛس اٌط ثط٘بٔ ٝثب
فطاذٛا٘ي سبثـ exitيب abortذبسٕ ٝيبثس.
سبظ٘س ٜثطاي يه ضي ٔحّي ( staticاسشبسيه) فمظ يه ثبض فطاذٛا٘ي ٔيضٛز ٚآٖ ٓٞظٔب٘ي اسز وٝ
اػطا ثٔ ٝىب٘ي ثطسس و ٝضي زض آ٘ؼب سقطيف ضس ٜاسز٘ .بثٛزوٙٙسٔ ٜشٙبؽط ٓٞظٔب٘ي فطاذٛا٘ي ٔيضٛز وٝ
mainذبسٕ ٝيبفش ٝثبضس يب ثط٘بٔ ،ٝسبثـ exitضا فطاذٛا٘ي وطز ٜثبضس .ضيٞبي سطاسطي ٚاسشبسيه ث ٝسطسيت
ٔقىٛس اظ ايؼبز ذٛز ٘بثٛز ٔيض٘ٛس٘ .بثٛزوٙٙسٜٞب زض غٛضسيى ٝثط٘بٔ ٝثب فطاذٛا٘ي سبثـ abortذبسٕ ٝيبفشٝ
ثبضس ،ثطاي ضيٞبي اسشبسيه فطاذٛا٘ي ٘رٛاٙٞس ضس .ثط٘بٔ ٝثىبض ضفش ٝزض ضىُٞبي 9-13اِي9-11
CreateAndDestory ٘طب٘سٙٞس ٜسطسيجي اسز و ٝسبظ٘سٜٞب ٘ ٚبثٛزوٙٙسٜٞبي ثطاي ضيٞبي والس
فطاذٛا٘ي ٔيض٘ٛس (ضىُ ٚ 9-11ضىُ )9-11اظ والسٞبي شذيطٜسبظي ٔرشّف زض لّٕطٞٚبي
ٌ٘ٛبٌٞ .ٖٛط ضي اظ والس CreateAndDestoryحبٚي (ذغٛط )16-17يه ٘ٛؿ غحيح ()objectID
ٚيه ضضش (message) ٝاسز و ٝزض ذطٚػي ثط٘بٔ ٝثىبض ٌطفش ٝضسٜا٘س سب ٛٞيز ضي ثبضٙس .ايٗ ٔظبَ غطفبً
ػٙج ٝآٔٛظضي زاضز .اظ ايٙط ،ٚذظ 23اظ ٘بثٛزوٙٙس ٜزض ضىُ 9-11سقييٗ ٔيوٙس و ٝآيب ضي ٘بثٛز ضسٜ
زاضاي ضٙبس (objectID) ٝثب ٔمساض 1يب 6اسز يب ذيط ٚ ،اٌط چٙيٗ ثبضس يه وبضاوشط ذظ ػسيس زض
ذطٚػي لطاض زازٔ ٜيضٛز .ايٗ ذظ وٕه ٔيوٙس سب زضن ذطٚػي ثط٘بٔ ٝآسب٘شط ضٛز.
1 // Fig. 9.11: CreateAndDestroy.h
2 // Definition of class CreateAndDestroy.
3 // Member functions defined in CreateAndDestroy.cpp.
4 >#include <string
5 ;using std::string
6
7 #ifndef CREATE_H
8 #define CREATE_H
9
10 class CreateAndDestroy
11 {
12 public:
13 CreateAndDestroy( int, string ); // constructor
14 ~CreateAndDestroy(); // destructor
15 private:
16 int objectID; // ID number for object
17 string message; // message describing object
18 }; // end class CreateAndDestroy
19
20 #endif
www.yourshop.4kia.ir
www.Booknama.com
اسشبسيه اسز سبsixth ٝىٙ ثسِيُ اي. ٔيدصيطزٕٝ ذبسcreate ٝ٘س ظٔب٘يىٛا٘ي ٔيضٛ فطاذfifth سذسٚ
أب،زٛا٘ي ٔيضٛ فطاذfirst ٚ third ٜسٙٙزوٛ لجُ اظ ٘بثsixth ٜسٙٙزوٛ ٘بث. ثبلي ٔئب٘سٝٔ ثط٘بٕٝظٔبٖ ذبس
.زٛز ٔيضٛبي زيٍط ٘بثٞزي سٕبْ ضيٛدس اظ ٘بث
1 // Fig. 9.13: fig09_13.cpp
2 // Demonstrating the order in which constructors and
3 // destructors are called.
4 #include <iostream>
www.yourshop.4kia.ir
www.Booknama.com
5 using std::cout;
6 using std::endl;
7
8 #include "CreateAndDestroy.h" // include CreateAndDestroy class definition
9
10 void create( void ); // prototype
11
12 CreateAndDestroy first( 1, "(global before main)" ); // global object
13
14 int main()
15 {
16 cout << "\nMAIN FUNCTION: EXECUTION BEGINS" << endl;
17 CreateAndDestroy second( 2, "(local automatic in main)" );
18 static CreateAndDestroy third( 3, "(local static in main)" );
19
20 create(); // call function to create objects
21
22 cout << "\nMAIN FUNCTION: EXECUTION RESUMES" << endl;
23 CreateAndDestroy fourth( 4, "(local automatic in main)" );
24 cout << "\nMAIN FUNCTION: EXECUTION ENDS" << endl;
25 return 0;
26 } // end main
27
28 // function to create objects
29 void create( void )
30 {
31 cout << "\nCREATE FUNCTION: EXECUTION BEGINS" << endl;
32 CreateAndDestroy fifth( 5, "(local automatic in create)" );
33 static CreateAndDestroy sixth( 6, "(local static in create)" );
34 CreateAndDestroy seventh( 7, "(local automatic in create)" );
35 cout << "\nCREATE FUNCTION: EXECUTION ENDS" << endl;
36 } // end function create
Object 1 constructor runs (global before main)
MAIN FUNCTION: EXECUTION BEGINS
Object 2 constructor runs (local automatic in main)
Object 3 constructor runs (local static in main)
CREATE FUNCTION: EXECUTION BEGINS
Object 5 constructor runs (local automatic in create)
Object 6 constructor runs (local static in create)
Object 7 constructor runs (local automatic in create)
www.yourshop.4kia.ir
www.Booknama.com
اٌط سبثقي يهٝيس وٙ زلز و.سٞ اظ آٖ والس ثطٌطز ٔيزprivate ٜ زازٛ يه فضٝ ثٝ يه ٔطاػقٝو
. وطزٜ اغالحدصيط اسشفبزlvalue اٖ يهٛٙفٝاٖ ثٛ ٕ٘يسٝ اظ آٖ ٔطاػق،سٞ( ثطٌطز زconst) طبثزٝٔطاػق
ٜ ضسٜ) اسشفبز9-15 ٚ 9-14 ُ (ضىTime ٜ ضسٜ اظ يه والس سبز9-14 اِي9-16 بيُٞ ضىٝٔزض ثط٘ب
ٜ (افالٖ ضسbadSetHour ٛ ثب سبثـ فضprivate ٛ فضٜ يه زازٝ ثٝ ثطضسي ثطٌطز زازٖ يه ٔطاػقٝسب ث
الـ ثطٌطزٚ زض.زٛ ضٝ) دطزاذش29-33 طٛ اظ ذغ9-15 ُ زض ضىٜ سقطيف ضسٚ 15 اظ ذظ9-14 ُزض ضى
ٜ زازٛاٖ ٘بْ ػب٘طيٗ ثطاي فضٛٙ ثقbadSetHour ٛا٘ي سبثـ فضٛاي سجت فطاذٝيٗ ٔطاػقٙزازٖ چ
private ٜ زازٛ زض آٖ فضٝ وطز وٜضي اسشفبزٚط ضٞ ٝا٘ي سبثـ ثٛاٖ اظ فطاذٛ ٔي س.سٙ ٔيوhour غيٛذػ
ٚطٙ اظ اي،زٛ ضٝ زض يه فجبضر سرػيع ثىبض ٌطفشlvalue اٖ يهٛٙا٘س حشي ثقٛغي) ٔيسٛ(ذػ
سٙٙ دبن وٜاٛض زِرٛ والس ضا ثغprivate ٜز سب زازٛس ثٙٞاٛبي والس لبزض ذٜٞيسٌيط٘سٚسط
سظ سبثقيٛ سprivate ٜ زازٌٝط ثٜ يه اضبضٝضسيىٛا٘س زض غٕٛيٗ ٔطىُ ٔيسٞ ٝيس وٙ وٝػٛ س.)(زسشىبضي
.سٞ ضخ ز،زٛ ضٜثطٌطز زاز
1 // Fig. 9.14: Time.h
2 // Declaration of class Time.
3 // Member functions defined in Time.cpp
4
5 // prevent multiple inclusions of header file
6 #ifndef TIME_H
7 #define TIME_H
8
9 class Time
10 {
11 public:
12 Time( int = 0, int = 0, int = 0 );
13 void setTime( int, int, int );
14 int getHour();
15 int &badSetHour( int ); // DANGEROUS reference return
16 private:
17 int hour;
18 int minute;
19 int second;
20 }; // end class Time
21
22 #endif
.private َترگشت زازى يك هراجعِ تِ زازُ عض | 9-14 شكل
1 // Fig. 9.15: Time.cpp
2 // Member-function definitions for Time class.
3 #include "Time.h" // include definition of class Time
4
5 // constructor function to initialize private data;
6 // calls member function setTime to set variables;
7 // default values are 0 (see class definition)
8 Time::Time( int hr, int min, int sec )
9 {
10 setTime( hr, min, sec );
11 } // end Time constructor
12
13 // set values of hour, minute and second
14 void Time::setTime( int h, int m, int s )
15 {
16 hour = ( h >= 0 && h < 24 ) ? h : 0; // validate hour
17 minute = ( m >= 0 && m < 60 ) ? m : 0; // validate minute
18 second = ( s >= 0 && s < 60 ) ? s : 0; // validate second
www.yourshop.4kia.ir
www.Booknama.com
www.yourshop.4kia.ir
www.Booknama.com
*************************************** **********
POOR PROGRAMMING PRACTICE!!!!!!!!
t.badSetHour( 12 ) as an lvalue, invalid hour: 74
*************************************************
.private ُ | ترگشت زازى يك هراجعِ تِ يك عضَ زاز9-16 شكل
ٝ ٘شيؼٝ ثٝ ٔمساض سرػيع يبفشٝىٙ ضا ثطاي ٕ٘بيص ايgetHour سظ سبثـٛ ٔؼسزاً ٔمساض ثطٌطشي س28 ذظ
.ضزٚ ٕ٘بيص زض ٔيآٝ ث، اسزٜ ضا سغييط زازt زض ضيprivate ٜ زاز23 ا٘ي سبثـ زض ذظٛفطاذ
Memberwise ترصيص9-11
ضٛ ثغ. وطزٜؿ اسشفبزٛ٘ ٖٕبٞ ضي زيٍط اظٝاٖ اظ فٍّٕط سرػيع (=) ثطاي سرػيع يه ضي ثٛٔيس
اظ ضي زضٜ زازٛط فضٞ ،ضر ٔيٌيطزٛ غmemberwise سظ سرػيعٛيٗ سرػيػي سٙ چ،ديصفطؼ
زض سٕز چخ فٍّٕطٝ زض ضي لطاض ٌطفشٜ زازٕٛبٖ فضٞ ٝ ثٝ٘ض ػساٌبٛسٕز ضاسز فٍّٕط سرػيع ثغ
َ زض ايٗ ٔظبٜ ثطاي اسشفبزDate والس9-18 ٚ 9-17 بيُٞ زض ضى.زٛ ٔيضٜ ا٘شسبة زاز،سرػيع
date1 ٜ ثطاي ا٘شسبة افضبي زازmemberwie اظ سرػيع9-19 ُ اظ ضى20 زض ذظ. اسزٜسقطيف ضس
. اسزٜ ضسٜ اسشفبزDate اظ والسdate2 بؽطٙ ٔشٜ افضبي زازٝ ثDate اظ والس
1 // Fig. 9.17: Date.h
2 // Declaration of class Date.
3 // Member functions are defined in Date.cpp
4
5 // prevent multiple inclusions of header file
6 #ifndef DATE_H
7 #define DATE_H
8
9 // class Date definition
10 class Date
11 {
12 public:
13 Date( int = 1, int = 1, int = 2000 ); // default constructor
14 void print();
15 private:
16 int month;
17 int day;
18 int year;
19 }; // end class Date
20
21 #endif
.Date | فايل سرآيٌس كالس9-17 شكل
1 // Fig. 9.18: Date.cpp
2 // Member-function definitions for class Date.
3 #include <iostream>
4 using std::cout;
5 using std::endl;
6
7 #include "Date.h" // include definition of class Date from Date.h
8
9 // Date constructor (should do range checking)
10 Date::Date( int m, int d, int y )
11 {
12 month = m;
13 day = d;
14 year = y;
www.yourshop.4kia.ir
www.Booknama.com
www.yourshop.4kia.ir
www.Booknama.com
آضٙب ذٛاٞيٓ وطز .زض ثرص دبيب٘ي «ٔجحض آٔٛظضي ٟٔٙسسي ٘طْافعاض» (ثرص ،)13-11ايٗ فبيُٞبي
سطآيٙس ضا ثطاي ٕٞبٍٙٞي ثب ٔف ْٟٛاضصثطي زض ثط٘بٔٛ٘ٝيسي ضيٌطا اغالح ذٛاٞيٓ وطز.
رٍيت
ٔيذٛاٞيٓ سػطيحوٙٙسٜٞبي زسشطسي ث ٝافضبي والسٞب ضا فطا ٓٞآٚضيٓ .زض فػُ س ،ْٛثٔ ٝقطفي
سػطيحوٙٙسٜٞبي زسشطسي private ٚ publicدطزاذشيٓ .ايٗ سػطيحوٙٙسٜٞب لبثُ ضٚيز يب زسشطس دصيط
ثٛزٖ غفبر ٚفّٕيبر يه ضي ضا و ٝزض اذشيبض ضيٞبي زيٍط ٞسشٙس ،سقييٗ ٔيوٙٙس .لجُ اظ ايٙى ٝثشٛا٘يٓ
ضطٚؿ ث ٝديبزٜسبظي عطح ذٛز ٕ٘بئيٓ ،ثبيسشي ثطضسي وٙيٓ و ٝوساْ غفبر ٚفّٕيبسي اظ والسٞب حبِز
publicزاض٘س ٚوسأيه حبِز .privateزض فػُ سٔ ،ْٛطبٞس ٜوطزيس ؤ ٝقٕٛالً افضبي زاز ٜثبيسشي
privateثبضٙس ٚآٖ زسش ٝاظ سٛاثـ فض ٛو ٝسٛسظ سطٚيسٌيط٘سٜٞب فقبَ ٔيض٘ٛس ثبيسشي اظ ٘ٛؿ public
www.yourshop.4kia.ir
www.Booknama.com
سقييٗ ض٘ٛس .سٛاثـ فض ٛو ٝفمظ سٛسظ سبيط سٛاثـ فض ٛيه والس فطاذٛا٘ي ٔيٌطز٘س ،ثقٛٙاٖ «سٛاثـ
يٛسيّيشي» ضٙبذشٔ ٝيض٘ٛس ،ثب ايٗ ٔ ،ٕٝٞقٕٛالً ثبيس privateثبضٙس .ظثبٖ UMLاظ ٘طبٍ٘ط ضٚيز ثطاي ٔسَ
وطزٖ ٔيعاٖ ضٚيز غفبر ٚفّٕيبر اسشفبزٔ ٜيوٙس .ضٚيز فٕٔٛي ) (publicثب لطاض زازٖ يه ٕ٘بز ػٕـ
( )+لجُ اظ يه فّٕيبر يب غفز ضٙبذشٔ ٝيضٛز .ضٚيز ذػٛغي ( ٓٞ )privateثب يه ٕ٘بز ٔٙفي ()-
سقييٗ ٔيٌطزز .زض ضىُ 9-11زيبٌطاْ والس ثب افٕبَ ٘طبٍ٘طٞبي ضٚيز ث ٝضٚظ ضس ٜاسز٘] .ىش :ٝزض
ضىُ 9-11سٕبْ دبضأشطٞبي فّٕيبسي ِحبػ ٘طس ٜاسز ٚايٗ وبٔالً فبزي اسز .افعٚزٖ ٘طبٍ٘طٞبي ضٚيز
سبطيطي زض دبضأشطٞبي ٔسَ ضس ٜزض زيبٌطاْٞبي والس زض ضىُٞبي 6-11اِي ٘ 6-15ساضز[.
ّسايت
UML لجُ اظ ايٙى ٝضطٚؿ ث ٝديبزٜسبظي عطح ذٛز ثب C++وٙيٓ ،ثٔ ٝقطفي يىي زيٍط اظ ٕ٘بزٞبي
ٔيدطزاظيٓ .زيبٌطاْ والس زض ضىُ 9-11ثب زض اذشيبض ٌطفشٗ فّصٞبي ٞسايز ثٕٞ ٝطا ٜذغٛط اضسجبعي
زض ٔيبٖ والسٞبي سيسشٓ ATMث ٝضٚظ ضس ٜاسز .فّصٞبي ٞسايز ٘طبٖ ٔيزٙٞس و ٝوساْ ػٟز
اضسجبعي ضا ٔيسٛاٖ عي وطز و ٝثط دبئ ٝسَ ٕٞىبضي ٚزيبٌطاْٞبي سٛاِي اسز (ثرص .)7-11ثٍٙٞ ٝبْ
ديبزٜسبظي يه سيسشٓ عطاحي ضس ٜثب اسشفبز ٜاظ ،UMLثط٘بٔٛ٘ٝيسبٖ اظ فّصٞبي ٞسايز ثطاي وٕه زض
سقييٗ ايٙى ٝوساْ ضيٞب ٘يبظ ثٔ ٝطاػق ٝيب اضبض ٜث ٝسبيط ضيٞب زاض٘س ،اسشفبزٔ ٜيوٙٙس .ثطاي ٔظبَ فّص
ٞسايز و ٝاظ والس ATMث ٝوالس BankDatabaseاضبضٔ ٜيوٙس ثط ايٗ ٘ىش ٝزالِز زاضز وٝ
BankDatabase ٔي سٛا٘يٓ اظ اثشسا ث ٝا٘شٟب حطوز وٙيٓ ٚ ،زض ٘شيؼ ATM ٝلبزض ث ٝفقبَ وطزٖ فّٕيبر
ٔيضٛز .ثب ايٗ ٚػٛز ،زض حبِيى ٝضىُ 9-11حبٚي يه فّص ٞسايز اظ والس BankDatabaseثٝ
والس ٘ ATMيسز ،دس BankDatabaseلبزض ث ٝزسشطسي ث ٝفّٕيبر ٕ٘ ATMيثبضس .زلز وٙيس وٝ
ٚاثسشٍيٞبي ٔٛػٛز زض يه زيبٌطاْ والس و ٝزاضاي فّصٞبي ٞسايز زض ٞط ز ٚا٘شٟبي ذٛز ٞسشٙس يب
زاضاي ايٗ فّصٞبي ٘يسشٙس٘ ،طب٘سٙٞسٞ ٜسايز ز ٚعطف( ٝز ٚسٛئ )ٝيثبضٙس.
شكل | 9-21زياگرام كالس تا ًشاًگرّاي رٍيت.
ٕٞب٘ٙس زيبٌطاْ والس زض ضىُ ،3-13زيبٌطاْ والس زض ضىُ 9-11ثطاي حفؼ سبزٌي والسٞبي
Deposit ٚ BalanceInquiryضا زض ٘ؾط ٍ٘طفش ٝاسزٞ .سايز افٕبَ ضس ٜزض ايٗ والسٞب ثسيبض ثٞ ٝسايز
BalanceInquiry افٕبَ ضس ٜزض والس ٘ Withdrawalعزيه اسز .اظ ثرص 3-11ثربعط زاضيس وٝ
زاضاي يه ضاثغ ٝثب والس Screenاسزٔ .يسٛا٘يٓ اظ عطيك ايٗ ضاثغ ٝاظ والس BalanceInquiryثٝ
والس Screenثطسيٓ ،أب ٕ٘يسٛا٘يٓ اظ والس Screenث ٝوالس ٞ BalanceInquiryسايز ضٛيٓ .اظ
ايٙط ،ٚاٌط ث ٝسطاك ٔسَ وطزٖ والس BalanceInquiryزض ضىُ 9-11ثطٚيٓٔ ،يسٛا٘يٓ يه فّص
ٞسايز زض ا٘شٟبي والس Screenايٗ ضاثغ ٝلطاض زٞيٕٓٞ .چٙيٗ ثربعط زاضيس يه والس Depositثب
www.yourshop.4kia.ir
www.Booknama.com
والسٞبي DepositSlot ٚ Keypad ،Screenضاثغ ٝزاضزٔ .يسٛا٘يٓ اظ والس Depositثٞ ٝط وسأيه
اظ ايٗ والسٞب ٞسايز ضٛيٓ ،أب فىس ايٙحبِز غبزق ٘يسز .اظ ايٙط ٚفّصٞبي ٞسايز ضا زض ا٘شٟبي
ضاثغ ٝثب ايٗ والسٞب لطاض زازٜايٓ.
شكل | 9-21زياگرام كالس تا فلشّاي ّسايت.
پيازُسازي سيستن ATMاز رٍي طرح UMLآى
او ٖٛٙآٔبزٞ ٜسشيٓ سب ضطٚؿ ث ٝديبزٜسبظي سيسشٓ ٕ٘ ATMبئيٓ .اثشسا والسٞبي ٔٛػٛز زض زيبٌطاْٞبي
ضىُٞبي 9-11 ٚ 9-11ضا ث ٝفبيّٟبي سطآيٙس C++سجسيُ ٔيوٙيٓ .ايٗ وس فطض ٝوٙٙس« ٜاسىّز» سيسشٓ
ذٛاٞس ثٛز .زض فػُ سيعز ،ٓٞفبيّٟبي سطآيٙس ضا ثطاي ثٟطٌٜيطي اظ ٔف ْٟٛاضصثطي اغالح ذٛاٞيٓ وطز.
ثقٛٙاٖ يه ٔظبَ ،ضطٚؿ ث ٝايؼبز فبيُ سطآيٙس ٔشقّك ث ٝوالس Withdrawalاظ ضٚي عطح ٔٛػٛز ايٗ
والس زض ضىُ ٔ 9-11يوٙيٓ .اظ ايٗ سػٛيط ثطاي سقييٗ غفبر ٚفّٕيبر والس اسشفبز ٜوٙيٓ .اظ ٔسَ
UMLزض ضىُ 9-11ثطاي سقييٗ ٚاثسشٍيٞبي ٔٛػٛز ٔبثيٗ والسٞب اسشفبزٔ ٜيوٙيٓ .ثطاي ٞط والسي
دٙغ ٔطحّ ٝظيط ضا ز٘جبَ ٔيوٙيٓ:
1ـ اظ ٘بْ لطاض ٌطفش ٝزض ثرص ا َٚيه والس زض زيبٌطاْ والس ثطاي سقطيف والس زض فبيُ سطآيٙس
اسشفبزٔ ٜيوٙيٓ (ضىُ .)9-11اظ زسشٛضزٙٞسٜٞبي ديصدطزاظ٘س #endif ٚ #define ،#ifndef ٠ثطاي
اػشٙبة اظ افٕبَ ثيص اظ يىجبض فبيُ سطآيٙس زض ثط٘بٔ ٝاسشفبز ٜوٙيس.
1ـ اظ غفبر ٔٛػٛز زض ثرص ز ْٚوالس ثطاي افالٖ افضبي زاز ٜاسشفبز ٜوٙيس .ثطاي ٔظبَ ،غفبر
privateاظ والس Withdrawalفجبضسٙس اظ amount ٚ accountNumberو ٝحبغُ آٖ زض ضىُ
9-13آٚضز ٜضس ٜاسز.
-3اظ ٚاثسشٍي سٛغيف ضس ٜزض زيبٌطاْ والس ثطاي افالٖ ٔطاػقٞٝب (يب اضبضٌٜطٞب زض غٛضر ٘يبظ) ثٝ
ضيٞبي زيٍط اسشفبز ٜوٙيس .ثطاي ٔظبَٔ ،غبثك ضىُ ،9-11والس ٔ Withdrawalيسٛا٘س ث ٝيه ضي اظ
والس ،Screenيه ضي اظ والس ،Keypadيه ضي اظ والس ٚ CashDispenserيه ضي اظ
والس BankDatabaseزسشطسي زاضش ٝثبضس .والس Withdrawalثبيس ٔجبزضر ث ٝحفؼ ٙٞسَٞبيي
(زسشٍيط )ٜث ٝايٗ ضيٞب وٙس ،سب ديغبْٞبي ث ٝآٟ٘ب اضسبَ ٕ٘بيس .اظ ايٙط ٚذغٛط 19-22اظ ضىُ 9-14
ٔجبزضر ث ٝافالٖ چٟبض ٔطاػق ٝثقٛٙاٖ افضبي زاز private ٜوطزٜا٘س .زض ديبزٜسبظي Withdrawalزض
ضٕيٕ ،G ٝيه سبظ٘س ٜايٗ افضبي زاز ٜضا ثب ٔطاػقٞٝبي ث ٝضيٞبي ٚالقي ٔمساضزٞي اِٚي ٝوطز ٜاسز.
سٛػ ٝوٙيس و ٝزض ذغٛط #include ،6-9فبيّٟبي سطآيٙس حبٚي سقبضيفي اظ والسٞبي ،Screen
BankDatabase ٚ CashDispenser ،Keypadاسز ،اظ ايٙطٚسز ؤ ٝيسٛا٘يٓ ٔطاػقٞٝبي ث ٝضيٞبيي
اظ ايٗ والسٞب زض ذغٛط 19-22افالٖ وٙيٓ.
www.yourshop.4kia.ir
www.Booknama.com
-4اظزحبْ ايؼبز ضس ٜاظ ٚاضز وطزٖ فبيّٟبي سطآيٙس والسٞبي ٚ CashDispenser ،Keypad ،Screen
BankDatabaseزض ضىُ 9-14ثيص اظ ٘يبظ اسز .والس Withdrawalحبٚي ٔطاػقٞٝبي ث ٝضيٞبي
اظ ايٗ والسٞب اسز (حبٚي ضيٞبي ٚالقي ٘يسز) ٔ ٚمساض اعالفبر ٔٛضز ٘يبظ سٛسظ وبٔذبيّط ثطاي ايؼبز
يه ٔطاػق ٝثب ايؼبز يه ضي سفبٚر زاضز .ثربعط زاضيس و ٝايؼبز يه ضي ٔسشّعْ آٖ اسز و ٝثطاي
وبٔذبيّط سقطيفي اظ والسي و٘ ٝبْ والس ضا ثقٛٙاٖ يه ٘ٛؿ ػسيس سقطيف ضس ٜاظ سٛي وبضثط ٔقطفي
ٔيوٙس ٘ ٚطب٘سٙٞس ٜافضبي زازٜاي اسز و ٝسقييٗ وٙٙسٔ ٜيعاٖ حبفؾٛٔ ٝضز ٘يبظ ثطاي آٖ ضي ٞسشٙس،
سساضن زيس ٜثبضيس .ثب ايٗ ،ٕٝٞافالٖ يه ٔطاػق( ٝيب اضبضٌٜط) ث ٝيه ضي ،فمظ ٔسشّعْ آٖ اسز وٝ
وبٔذبيّط ثسا٘س و ٝضي ي اظ والس ٔٛػٛز اسز ٘ ٚيبظي ث ٝزا٘سشٗ سبيع ضي ٘ساضزٞ .ط ٔطاػق( ٝيب اضبضٌٜطي)
غطفٙؾط اظ ايٙى ٝث ٝوساْ ضي اظ والسي ٔطاػق ٝزاضز ،فمظ حبٚي آزضس حبفؾ ٝضي ٚالقي اسزٔ .يعاٖ
حبفؾٛٔ ٝضز ٘يبظ ثطاي شذيطٜسبظي يه آزضس يه ٔسئّ ٝسرز افعاضي ٔطسجظ ثب وبٔذيٛسط اسز .وبٔذبيّط
اظ سبيط ٞط ٔطاػق ٝيب اضبضٌٜطي ٔغّـ اسز .زض ٘شيؼ ،ٝثٍٙٞ ٝبْ افالٖ فمظ يه ٔطاػق ٝث ٝيه ضي اظ آٖ
والسٚ ،اضز وطزٖ وُ فبيُ سطآيٙس والس ضطٚضسي ٘ساضز ٘ ٚيبظ ثٔ ٝقطفي ٘بْ والس زاضيٓ أب ٘يبظي ثٝ
C++ سساضن زيسٖ آضايص زاز ٜضي ٘ساضيٓ چطا و ٝوبٔذبيّط اظ سبيع سٕبْ ٔطاػقٞٝب اعالؿ زاضز .ظثبٖ
زاضاي زسشٛضي ثٙبْ افالٖ ض ٚث ٝػّ ٛيب forwardاسز و٘ ٝطبٖ ٔيزٞس يه فبيُ سطآيٙس حبٚي ٔطاػقٞٝب
يب اضبضٌٜطٞبي ث ٝيه والس اسز ،أب سقطيف والس ذبضع اظ فبيُ سطآيٙس لطاض زاضزٔ .يسٛا٘يٓ
ٞ#includeبي ٔٛػٛز زض سقطيف والس Withdrawalضىُ 9-14ضا ثب افالٖٞبي ض ٚث ٝػّ ٛوالسٞبي
BankDatabase ٚ CashDispenser ،Keypad ،Screenػبيٍعيٗ وٙيٓ (ذغٛط 6-9زض ضىُ -15
.)9ثؼبي ٚاضز وطزٖ وُ فبيُ سطآيٙس ثطاي ٞط وسأيه اظ ايٗ والسٞب ،فمٟب يه افالٖ ض ٚث ٝػّ ٛاظ ٞط
والس زض فبيُ سطآيٙس ضا ثطاي والس Withdrawalػبيٍعيٗ ٔيوٙيٓ .سٛػ ٝوٙيس و ٝاٌط والس
Withdrawalحبٚي ضيٞبي ٚالقي ثؼبي ٔطاػقٞٝب ثبضس (يقٙي فالٔزٞبي & زض ذغٛط 19-22حصف
ض٘ٛس)٘ ،يبظ ذٛاٞس ثٛز سب وُ فبيُٞبي سطآيٙس ضا ٚاضز )ٕ٘ (#includeبئيٓ.
1 // Fig. 9.22: Withdrawal.h
2 // Definition of class Withdrawal that represents a withdrawal transaction.
3 #ifndef WITHDRAWAL_H
4 #define WITHDRAWAL_H
5
6 class Withdrawal
7 {
8 }; // end class Withdrawal
9
10 #endif // WITHDRAWAL_H
شكل | 9-22تعريف كالس Withdrawalاحاطِ شسُ زر پَشاًٌسُّاي پيشپرزازًسُ.
1 // Fig. 9.23: Withdrawal.h
2 // Definition of class Withdrawal that represents a withdrawal transaction.
3 #ifndef WITHDRAWAL_H
4 #define WITHDRAWAL_H
5
6 class Withdrawal
www.yourshop.4kia.ir
www.Booknama.com
7 {
8 private:
9 // attributes
10 int accountNumber; // account to withdraw funds from
11 double amount; // amount to withdraw
12
13 }; // end class Withdrawal
14
15 #endif // WITHDRAWAL_H
www.yourshop.4kia.ir
www.Booknama.com
13 private:
14 // attributes
15 int accountNumber; // account to withdraw funds from
16 double amount; // amount to withdraw
17
18 // references to associated objects
19 Screen &screen; // reference to ATM's screen
20 Keypad &keypad; // reference to ATM's keypad
21 CashDispenser &cashDispenser; // reference to ATM's cash dispenser
22 BankDatabase &bankDatabase; // reference to the account info database
23 }; // end class Withdrawal
24
25 #endif // WITHDRAWAL_H
www.yourshop.4kia.ir
www.Booknama.com
:يس چطاٞضيح زٛ س،ٖزٛ ثٜضر اضشجبٛ زض غ،ٜيس فجبضر ظيط غحيح اسز يب اضشجبٙ سقييٗ و9ـ1
ض ٔسشميٓ اظ ذبضعٛ آٖ غفز ثغ،زٌٛصاضي ضٝ٘) زض زيبٌطاْ والس ٘طب-( فيٙٔ اٌط غفشي اظ يه والس ثب فالٔز
.ا٘س ثبضسٛاظ والس زض زسشطس ٕ٘يس
:ٝ زالِز زاضز وٝ ثطايٗ ٘ىشScreen ٚ ATM ٗ ٔبثيٝ ضاثغ،9-11 ُ زض ضى9-2
.ٓيٛسايز ضٞ ATM ٝ ثScreen ا٘يٓ اظٛ( ٔيسa
.ٓيٛسايز ضٞ Screen ٝ ثATM ا٘يٓ اظٛ( ٔيسb
. اسزٝيٛسٚسايز زٞ ،سٙسشٞ غحيحٚط زٞ b ٚ a (c
.قٛاضز فٛٔ يچ وسأيه اظٞ (d
.سٙسبظي وٜ ضا ديبزAccount ثطاي والسٝ عطح ثىبض ضفشٝيسيس وٛٙ ثC++ ٖ ظثبٝ وسي ث9-3
پاسد ذَزآزهايي
. اسزprivate يزٚ ضٜسٙٞ) ٘طب٘س-( فيٙٔ فالٔز. غحيح9-1
.b 9-2
. اسزٜ ضسٜضزٚ آ9-17 ُس ضىٙ زض فبيُ سطآيAccount عطاحي والسٝ ٘شيؼ9-3
// Fig. 9.27: Account.h
// Account class definition. Represents a bank account.
#ifndef ACCOUNT_H
#define ACCOUNT_H
class Account
{
public:
Account( int, int, double, double ); // constructor sets attributes
bool validatePIN( int ) const; // is user-specified PIN correct?
double getAvailableBalance() const; // returns available balance
double getTotalBalance() const; // returns total balance
void credit( double ); // adds an amount to the Account balance
void debit( double ); // subtracts an amount from the Account balance
int getAccountNumber() const; // returns account number
private:
int accountNumber; // account number
int pin; // PIN for authentication
double availableBalance; // funds available for withdrawal
double totalBalance; // funds available + funds waiting to clear
}; // end class Account
#endif // ACCOUNT_H
.9-21 ٍ 9-21 تراساس شكلّايAccount | فايل سرآيٌس كالس9-27 شكل
ذَزآزهايي
:يسٙبست دط وٙٔ بي ذبِي ضا ثب وّٕبرٞ ػب9-1
زض سطويت.......... زض سطويت ثب ٘بْ يه ضي اظ والس يب اظ عطيك فٍّٕط............. ) افضبي والس اظ عطيك فٍّٕطa
. يه ضي اظ والس زض زسشطس لطاض ٔيٌيط٘سٌٝط ثٜثب اضبض
سشبٖ والس زض زسشطسٚ زٚ والسٛاثـ فضٛ فمظ ثطاي سٚ ٘سٛ ٔطرع ٔيض............. ٖاٛٙ) افضبي والس ثقb
.لطاض ٔيٌيط٘س
www.yourshop.4kia.ir
www.Booknama.com
)cافضبي والس ثقٛٙأٖ ..........طرع ٔيض٘ٛس ٚاظ ٞط وؼبي لّٕط ٚوالس زض زسشطس ٔيٌيط٘س.
)dاظ ٔ ................يسٛاٖ ثطاي سرػيع يه ضي اظ والس ث ٝضي اظ ٕٞبٖ والس اسشفبز ٜوطز.
9-1ذغب يب ذغبٞبي ٔٛػٛز زض ٞط يه اظ فجبضار ظيط ضا يبفش ٚ ٝآٟ٘ب ضا اغالح وٙيس.
)aفطؼ وٙيس ٕ٘ ٝ٘ٛاِٚي ٝظيط زض والس Timeافالٖ ضسٞبسز:
;)void ~Time(int
)bفجبضر ظيط ثرطي اظ سقطيف والس Timeاسز:
class Time
{
public:
//Function prototype:
private:
; = int hour
; = int minute
; = int second
} ; // end class Time
)cثب فطؼ ايٙى ٕٝ٘ٛ٘ ٝاِٚي ٝظيط زض والس Employeeافالٖ ضس ٜاسز.
;)* int Employee(const char *, const char
پاسد ذَزآزهايي
(dسرػيع memberwise public (c private ٘ )a 9-1مغ) b -> ،ٝ
9-1
)aذغب٘ :بثٛز وٙٙسٜٞب اػبظ ٜثطٌطز زازٖ ٔمساض يب ٌطفشٗ آضٌٔٛبٖ ضا ٘ساض٘س.
اغالح :حصف ٘ٛؿ ثطٌطي ٚ voidدبضأشط intاظ افالٖ.
(bذغب :افضب ٕ٘يسٛا٘ٙس ثػٛضر غطيح زض سقطيف والس ٔمساضزٞي اِٚي ٝض٘ٛس.
اغالح :حصف ٔمساضزٞي غطيح اظ سقطيف والس ٔ ٚمساضزٞي اِٚي ٝافضبي زاز ٜزض يه سبظ٘س.ٜ
)cذغب :سبظ٘سٜٞب لبزض ث ٝثطٌطز زازٖ ٔمساض ٘يسشٙس.
اغالح :حصف ٘ٛؿ ثطٌطشي intاظ افالٖ.
توريٌات
ٙٔ 9-3ؾٛض اظ فٍّٕط سفىيه لّٕط ٚچيسز؟
9-4سبظ٘سٜاي سساضن ثجيٙيس و ٝلبزض ث ٝاسشفبز ٜاظ ظٔبٖ ػبضي اظ سبثـ ) ( timeثبضس ،افالٖ ضس ٜزض وشبثرب٘ٝ
اسشب٘ساضز C++ثب سطآيٙس > ،<ctimeسب يه ضي اظ والس timeضا ٔمساضزٞي اِٚيٕ٘ ٝبيس.
9-5والسي ثٙبْ Complexايؼبز وٙيس و ٝلبزض ث ٝوبض ثب ٔمبزيط ٔرشّظ ثبضس .ثط٘بٔٝاي ثطاي سسز والس ذٛز
ثٛٙيسيس .افساز ٔرشّظ ثفطْ ظيط ٞسشٙس
realPart + imaginaryPart * i ( * iثرص ٔٔٛٞٛي +ثرص حميمي)
و ٝزض آٖ iثطاثط اسز ثب 1
www.yourshop.4kia.ir
www.Booknama.com
اظ ٔشغيطٞبي doubleثطاي فطض ٝزاز private ٜوالس اسشفبز ٜوٙيس .يه سبظ٘س ٜزض ٘ؾط ثٍيطيس و ٝث ٝضي اظ ايٗ
والس أىبٖ ٔمساضزٞي اِٚي ٝضا زض ظٔبٖ افالٖ فطا ٓٞآٚضز .ثبيس سبظ٘س ٜحبٚي ٔمبزيط ديص فطؼ ثبضس .سٛاثـ فضٛ
publicضا زض ٘ؾط ثٍيطيس وٚ ٝؽبيف ظيط ضا ا٘ؼبْ زٙٞس:
)aػٕـ ز ٚفسز : complexثرصٞبي حميمي ثب يىسيٍط ٚثرصٞبي ٔٔٛٞٛي ثب يىسيٍط ػٕـ ٔيض٘ٛس.
)bسفطيك ز ٚفسز : complexثرص حميمي لطاض ٌطفش ٝزض سٕز ضاسز سفطيك اظ ثرص حميمي لطاض ٌطفش ٝزض سٕز
چخ فّٕ٘ٛس ،وبسشٔ ٝيضٛز ٚ ،ثرص ٔٔٛٞٛي لطاض ٌطفش ٝزض سٕز ضاسز فّٕ٘ٛس اظ ثرص ٔٔٛٞٛي لطاض ٌطفش ٝزض
سٕز چخ فّٕ٘ٛس وبسشٔ ٝيضٛز.
)cچبح افساز complexثفطْ ) (a,bو ٝزض آٖ aثرص حميمي b ٚثرص ٔٔٛٞٛي اسز.
9-6والسي ثٙبْ Rationalايؼبز وٙيس سب فّٕيبر ضيبضي ضا ثب وسطٞب ا٘ؼبْ زٞس .ثط٘بٔٝاي ثطاي سسز والس
ثٛٙيسيس .اظ ٔشغيطٞبي غحيح ثطاي فطض ٝزاز private ٜوالس denominator ٚ numerator ،اسشفبز ٜوٙيس .يه
سبظ٘س ٜزض ٘ؾط ثٍيطيس و ٝث ٝضي اظ ايٗ والس أىبٖ ٔمساضزٞي اِٚي ٝضا زض ظٔبٖ افالٖ فطا ٓٞآٚضز .سبظ٘س ٜثبيس
حبٚي ٔمبزيط ديص فطؼ ثبضس ٚثبيس وسط ضا ثفطْ وبسش ٝضس ٜشذيط ٜوٙس .ثطاي ٔظبَ ،وسط 2/4
ٔيسٛا٘س زض يه ضي ثػٛضر 1زض 2 ٚ numeratorزض denominatorشذيط ٜضٛز .سٛاثـ فض public ٛضا ثطاي
ا٘ؼبْ ٚؽبيف ظيط زض ٘ؾط ثٍيطيس:
)aػٕـ ز ٚفسز ٘ .Rationalشيؼ ٝثبيس ثفطْ وبسش ٝضس ٜشذيط ٜضٛز.
)bسفطيك ز ٚفسز ٘ .Rationalشيؼ ٝثبيس ثفطْ وبسش ٝضس ٜشذيط ٜضٛز.
)cضطة ز ٚفسز ٘ .Rationalشيؼ ٝثبيس ثفطْ وبسش ٝضس ٜشذيط ٜضٛز.
)dسمسيٓ ز ٚفسز ٘ .Rationalشيؼ ٝثبيس ثفطْ وبسش ٝضس ٜشذيط ٜضٛز.
)eچبح افساز .Rationalثفطْ ، a/bو ٝزض آٖ aغٛضر ٔ b ٚرطع وسط اسز.
)fچبح افساز .Rationalثب فطٔز افطبضي.
9-7ثط٘بٔ ٝضىُٞبي 9-9 ٚ 9-8ضا ث٘ ٝحٛي اغالح وٙيس و ٝحبٚي سبثـ فض tick ٛثبضس سب ظٔبٖ شذيط ٜضس ٜزضضي
Timeضا زض ٞط طب٘ي ٝافعايص زٞس .ثبيسشي ضي ٕٞ timeيط ٝزض ٚضقيز دبيساض ثبلي ثٕب٘س .ثط٘بٔٝاي ثٛٙيسيس و ٝسبثـ
فض tick ٛضا زض حّمٝاي و ٝظٔبٖ ضا زض فطٔز اسشب٘ساضز زض ٞط ثبض سىطاض چبح ٔيوٙس ،سسز ٕ٘بيس سب اظ فّٕىطز
غحيح آٖ ٔغٕئٗ ٌطزيٓ .حشٕبً حبالر ظيط سسز ض٘ٛس:
ٚ )aضٚز ث ٝزليم ٝثقس.
ٚ )bضٚز ث ٝسبفز ثقس.
ٚ )cضٚز ث ٝضٚظ ثقس (يقٙي 11:59:59 PMث.)12:00:00AM ٝ
9-8والس Dateثىبض ضفش ٝزض ضىُٞبي 9-18 ٚ 9-17ضا ثطاي ا٘ؼبْ سسز ذغب زض ٔمساضزٞي ٔمبزيط ثطاي افضبي
زاز year ٚ day ، month ٜسغييط زٞيسٕٞ .چٙيٗ سبثـ فض nextDay ٛضا ثطاي افعايص يه ضٚظ زض ٞط ثبض زض ٘ؾط
ثٍيطيس .ضي Dateثبيس ٕٞيط ٝزض ٚضقيز دبيساض ثبلي ثٕب٘س .ثط٘بٔٝاي ثٛٙيسيس و ٝسبثـ nextDayضا زض حّمٝاي وٝ
www.yourshop.4kia.ir
www.Booknama.com
سبضيد ػبضي ضا زض ٞط ثبض سىطاض چبح ٔيوٙس ،سسز ٕ٘بيس سب اظ فّٕىطز غحيح ٔ nextDayغٕئٗ ٌطزيٓ .حشٕبً
حبالر ظيط سسز ض٘ٛس:
ٚ )aضٚز ثٔ ٝب ٜثقس.
ٚ )bضٚز ث ٝسبَ ثقس.
9-9والس اغالح ضس Time ٜزض سٕطيٗ ٚ 9-7والس اغالح ضس Date ٜزض سٕطيٗ 9-8ضا ثػٛضر يه والس
ثٙبْ DateAndTimeثب ٓٞسطويت وٙيس .اٌط ظٔبٖ ثطاي ٚضٚز ث ٝضٚظ ثقسي افعايص يبثس ،سبثـ tickضا ثطاي فطاذٛا٘ي
سبثـ nextDayاغالح وٙيس .سٛاثـ PrintUniversal , printStandardضا ثطاي چبح سبضيد ٚظٔبٖ اغالح وٙيس.
ثط٘بٔٝاي ثٛٙيسيس و ٝوالس ػسيس DateAndTimeضا سسز وٙس.
9-11سٛاثـ setثىبض ضفش ٝزض والس Timeضىُٞبي 9-9 ٚ 9-8ضا ث٘ ٝحٛي اغالح وٙيس سب زض غٛضسيىٔ ٝجبزضر ثٝ
ٔمساضزٞي يه ضي اظ والس Timeثب ٔمساض ٘بٔقشجط ضٛز ،ذغبي ٔشٙبست ثب آٖ ثطٌطز زاز ٜضٛز .ثط٘بٔٝاي ثطاي
سسز ايٗ ٘سر ٝاظ والس ثٛٙيسيس .ديغبْٞبي ذغب ضا زض غٛضر ثطٌطز ٔمبزيط ذغب اظ سٛاثـ setثٕٙبيص زضآٚضيس.
9-11والس ثٙبْ Rectangleثب غفبر length ،widthايؼبز وٙيس وٞ ٝط يه زاضاي ٔمساض ديص فطؼ ٞ 1سشٙس.
سٛاثـ فضٛي زض ٘ؾط ثٍيطيس و ٝالساْ ثٔ ٝحبسجٔ ٝسبحز ٔ ٚحيظ ٔسشغيُ وٙٙسٕٞ .چٙيٗ سٛاثـ set ٚ getضا ثطاي
غفبر width ,lengthزض ٘ؾط ثٍيطيس .ثبيسشي سٛاثـ ٔ setطالت ثبضٙس و width ,length ٝزاضاي ٔمبزيط افطبضي
ثعضٌشط اظ ٚ 0.0وٕشط اظ 20.0ثبضٙس.
9-11والس ديططفش Rectangle ٝضا ث٘ ٝسجز والس يبز ضس ٜزض سٕطيٗ 9-11ايؼبز وٙيس .ايٗ والس فمظ
ٔرشػػبر زوبضر ضا ثطاي چٟبض ٌٛضٔ ٝسشغيُ شذيطٔ ٜيوٙس .سبظ٘سٔ ٜجبزضر ث ٝفطاذٛا٘ي يه سبثـ ٔ setيوٙس
ؤ ٝؼٕٛف ٝچٟبض ٔرشػػبسي ضا دصيطفش ٚ ٝثطضسي ٔيوٙس وٞ ٝط وساْ اظ آٟ٘ب زض اِٚيٗ ضثـ لطاض زاض٘س ٔ ٚمساض آٟ٘ب
ثعضٌشط اظ ٕ٘ 2.0يثبضسٕٞ .چٙيٗ سبثـ setثطضسي ٔيوٙس ؤ ٝرشػبر سساضن زيس ٜضس ،ٜذبظ يه ٔسشغيُ ثبضٙس.
سٛاثـ فض ٛزض ٘ؾط ثٍيطيس ؤ ٝجبزضر ثٔ ٝحبسج ٝع ،َٛفطؼٔ ،حيظ ٔ ٚسبحز ٕ٘بيٙسٕٞ .چٙيٗ يه سبثـ ٔسٙس ثٙبْ
squareزض ٘ؾط ثٍيطيس و ٝسقييٗ وٙيس آيب ثب ٔسشغيُ عطف ٞسشيٓ يب ٔطثـ.
9-13والس ٔ Rectangleغطح ضس ٜزض سٕطيٗ 9-11ضا ثطاي زاضشٗ سبثـ drawاغالح وٙيس .ايٗ سبثـ الساْ ثٝ
ٕ٘بيص ٔسشغيُ زض زض ٖٚيه ػقج 25 ٝزض ٔ 25يوٙس و ٝثرطي اظ ضثـ أ َٚسشغيُ زض آٖ ٔميٓ اسز .اظ سبثـ
setFillCharacterثطاي دط وطزٖ زاذُ ٔسشغيُ ثب وبضاوشط ٔطرع ضس ٜاسشفبز ٜوٙيسٕٞ .چٙيٗ اظ سبثقي ثٙبْ
setPerimeterCharacterثطاي سقييٗ وبضاوشطي و ٝاظ آٖ ثطاي ضسٓ ثس٘ ٝيب حبضئ ٝسشغيُ اسشفبز ٜذٛاٞس ضس،
وٕه ثٍيطيس.
9-14والس ثٙبْ HugeIntegerايؼبز وٙيس و ٝاظ يه آضاي 40 ٝفٙػطي اظ اضلبْ ثطاي شذيطٜسبظي اضلبْ ث ٝثعضٌي
افساز 40ضلٕي اسشفبز ٜوٙس .سٛاثـ فض substract , add, output, input ٛضا زض ٘ؾط ثٍيطيس .ثطاي ٔمبيس ٝضيٞبي
،HugeIntegerسٛاثـ ٚ isGreaterThanOrEqualTo, isLessThan ،isGreaterThan ،isNotEqualTo ،isEqualTo
isLessThanOrEqualToضا زض ٘ؾط ثٍيطيسٞ .ط يه اظ ايٗ سٛاثـ يه سبثـ ديطٍ ٛيب ٔسٙس ٞسشٙس و ٝزض غٛضر
www.yourshop.4kia.ir
www.Booknama.com
ثطلطاض ثٛزٖ ضاثغٔ ٝبثيٗ ز ٚضي ٔ IntegerHugeمساض ٚ trueزض غٛضر ثطلطاض ٘جٛزٖ ضاثغٔ ٝمساض falseثطٌطز
modulus , divide, ٔيزٙٞسٕٞ .چٙيٗ سبثـ ٔسٙس isZeroضا زض ٘ؾط ثٍيطيس .زض غٛضر سٕبيُ ٔيسٛا٘يس سٛاثـ فضٛ
multiplyضا ٓٞثىبض ٌيطيس.
www.yourshop.4kia.ir