




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、華南理工大學(xué)計(jì)算機(jī)學(xué)院華南理工大學(xué)計(jì)算機(jī)學(xué)院 周靄如周靄如 20122012第第6 6章章 類與對象類與對象 6.1 6.1 類與對類與對象象 6.2 6.2 構(gòu)造函數(shù)和析構(gòu)函數(shù)構(gòu)造函數(shù)和析構(gòu)函數(shù) 6.3 6.3 類的其他成員類的其他成員 6.4 6.4 類的包含類的包含 小結(jié)小結(jié)華南理工大學(xué)計(jì)算機(jī)學(xué)院華南理工大學(xué)計(jì)算機(jī)學(xué)院 周靄如周靄如 20122012 類(類(ClassClass)是面向?qū)ο蟪绦蛟O(shè)計(jì)()是面向?qū)ο蟪绦蛟O(shè)計(jì)(OOPOOP)實(shí)現(xiàn)信息封裝的基礎(chǔ)。)實(shí)現(xiàn)信息封裝的基礎(chǔ)。 類是用戶定義類型,也稱為類類型類是用戶定義類型,也稱為類類型 每個(gè)類包含數(shù)據(jù)說明和一組操作數(shù)據(jù)或傳遞消息的函數(shù)
2、。類的每個(gè)類包含數(shù)據(jù)說明和一組操作數(shù)據(jù)或傳遞消息的函數(shù)。類的 實(shí)例稱為對象實(shí)例稱為對象第第6 6章章 類與對象類與對象 華南理工大學(xué)計(jì)算機(jī)學(xué)院華南理工大學(xué)計(jì)算機(jī)學(xué)院 周靄如周靄如 20122012 面向?qū)ο缶幊痰某绦蚧締挝皇穷惷嫦驅(qū)ο缶幊痰某绦蚧締挝皇穷?類是數(shù)據(jù)和操作數(shù)據(jù)的函數(shù)的封裝類是數(shù)據(jù)和操作數(shù)據(jù)的函數(shù)的封裝 類的對象使用自己的方法完成對數(shù)據(jù)的操作類的對象使用自己的方法完成對數(shù)據(jù)的操作 類可以隱藏?cái)?shù)據(jù)和操作細(xì)節(jié),對象通過類接口與外部通信類可以隱藏?cái)?shù)據(jù)和操作細(xì)節(jié),對象通過類接口與外部通信 6.1 6.1 類與對象類與對象 華南理工大學(xué)計(jì)算機(jī)學(xué)院華南理工大學(xué)計(jì)算機(jī)學(xué)院 周靄如周靄如 20
3、1220126.1 類與對象/ 排序函數(shù)原型void Sort (int , int ) ; / 數(shù)組相加函數(shù)原型void Add ( int , int , int ) ; int main() int a 10 , b 10 ; . Sort ( a , 10 ) ; Sort ( b , 10 ) ; Add ( a , b , 10) ; .數(shù)組與數(shù)組類數(shù)組與數(shù)組類華南理工大學(xué)計(jì)算機(jī)學(xué)院華南理工大學(xué)計(jì)算機(jī)學(xué)院 周靄如周靄如 20122012class Array/定義數(shù)組類 int *ap ; int len ; public: Array( int size )/ 建立數(shù)組 len=
4、 size ; ap = new int size ; void Sort ( ) ;/ 排序 / 重載算符 +函數(shù) Array operaor + (const Array & other) ; int main() Array a(10) , b(10) ;/ 聲明對象 . a . Sort() ; b . Sort() ; / 調(diào)用排序方法 a = a + b ;/ 數(shù)組相加 ./ 排序函數(shù)原型void Sort (int , int ) ; / 數(shù)組相加函數(shù)原型void Add ( int , int , int ) ; int main() int a 10 , b 10 ;
5、 . Sort ( a , 10 ) ; Sort ( b , 10 ) ; Add ( a , b , 10) ; .數(shù)組與數(shù)組類數(shù)組與數(shù)組類6.1 類與對象華南理工大學(xué)計(jì)算機(jī)學(xué)院華南理工大學(xué)計(jì)算機(jī)學(xué)院 周靄如周靄如 20122012class Array/定義數(shù)組類 int *ap ; int len ; public: Array( int size )/ 建立數(shù)組 len= size ; ap = new int size ; void Sort ( ) ;/ 排序 / 重載算符 +函數(shù) Array operaor + (const Array & other) ; int m
6、ain() Array a(10) , b(10) ;/ 聲明對象 . a . Sort() ; b . Sort() ; / 調(diào)用排序方法 a = a + b ;/ 數(shù)組相加 ./ 排序函數(shù)原型void Sort (int , int ) ; / 數(shù)組相加函數(shù)原型void Add ( int , int , int ) ; int main() int a 10 , b 10 ; . Sort ( a , 10 ) ; Sort ( b , 10 ) ; Add ( a , b , 10) ; .數(shù)組與數(shù)組類數(shù)組與數(shù)組類class Array/定義數(shù)組類 int *ap ; int len
7、; public: Array( int size )/ 建立數(shù)組 len= size ; ap = new int size ; void Sort ( ) ;/ 排序 / 重載算符 +函數(shù) Array operaor + (const Array & other) ;類是數(shù)據(jù)和操作數(shù)據(jù)的函數(shù)的封裝6.1 類與對象華南理工大學(xué)計(jì)算機(jī)學(xué)院華南理工大學(xué)計(jì)算機(jī)學(xué)院 周靄如周靄如 20122012class Array/定義數(shù)組類 int *ap ; int len ; public: Array( int size )/ 建立數(shù)組 len= size ; ap = new int size
8、 ; void Sort ( ) ;/ 排序 / 重載算符 +函數(shù) Array operaor + (const Array & other) ; int main() Array a(10) , b(10) ;/ 聲明對象 . a . Sort() ; b . Sort() ; / 調(diào)用排序方法 a = a + b ;/ 數(shù)組相加 ./ 排序函數(shù)原型void Sort (int , int ) ; / 數(shù)組相加函數(shù)原型void Add ( int , int , int ) ; int main() int a 10 , b 10 ; . Sort ( a , 10 ) ; Sort
9、 ( b , 10 ) ; Add ( a , b , 10) ; .數(shù)組與數(shù)組類數(shù)組與數(shù)組類對象使用自己的方法對數(shù)據(jù)操作6.1 類與對象華南理工大學(xué)計(jì)算機(jī)學(xué)院華南理工大學(xué)計(jì)算機(jī)學(xué)院 周靄如周靄如 201220126.1 類與對象華南理工大學(xué)計(jì)算機(jī)學(xué)院華南理工大學(xué)計(jì)算機(jī)學(xué)院 周靄如周靄如 20122012class 鐘 private : 鐘的構(gòu)造; public : 讀取時(shí)間值讀取時(shí)間值 ; 調(diào)整時(shí)間值調(diào)整時(shí)間值 ;對象通過類接口與外部通信6.1 類與對象華南理工大學(xué)計(jì)算機(jī)學(xué)院華南理工大學(xué)計(jì)算機(jī)學(xué)院 周靄如周靄如 20122012w 6.1.1 6.1.1 定義類和對象定義類和對象 / 例例
10、6-1 一個(gè)類的例子一個(gè)類的例子#includeusing namespace std ;class Tdate public: void Set(int m, int d, int y ) month = m ; day = d ; year = y ; int IsLeapYear() return ( year%4 = 0 & year%100 != 0 )|( year%400 = 0); void Print() cout year . month . day endl ; private: int month; int day; int year;int main() Td
11、ate a ; a.Set (10, 16, 2003) ; a.Print() ;華南理工大學(xué)計(jì)算機(jī)學(xué)院華南理工大學(xué)計(jì)算機(jī)學(xué)院 周靄如周靄如 20122012w 6.1.1 6.1.1 定義類和對象定義類和對象 / 例6-1 一個(gè)類的例子#includeusing namespace std ;class Tdate public: void Set(int m, int d, int y ) month = m ; day = d ; year = y ; int IsLeapYear() return ( year%4 = 0 & year%100 != 0 )|( year%4
12、00 = 0); void Print() cout year . month . day endl ; private: int month; int day; int year;int main() Tdate a ; a.Set (10, 16, 2003) ; a.Print() ;class Tdate public: void Set(int m, int d, int y ) month = m ; day = d ; year = y ; int IsLeapYear() return ( year%4 = 0 & year%100 != 0 )|( year%400
13、= 0); void Print() cout year . month . day endl ; private: int month; int day; int year;華南理工大學(xué)計(jì)算機(jī)學(xué)院華南理工大學(xué)計(jì)算機(jī)學(xué)院 周靄如周靄如 20122012w 6.1.1 6.1.1 定義類和對象定義類和對象 / 例6-1 一個(gè)類的例子#includeusing namespace std ;class Tdate public: void Set(int m, int d, int y ) month = m ; day = d ; year = y ; int IsLeapYear() retu
14、rn ( year%4 = 0 & year%100 != 0 )|( year%400 = 0); void Print() cout year . month . day endl ; private: int month; int day; int year;int main() Tdate a ; a.Set (10, 16, 2003) ; a.Print() ;class Tdate public: void Set(int m, int d, int y ) month = m ; day = d ; year = y ; int IsLeapYear() return
15、( year%4 = 0 & year%100 != 0 )|( year%400 = 0); void Print() cout year . month . day endl ; private: int month; int day; int year;關(guān)鍵字關(guān)鍵字定義一個(gè)類定義一個(gè)類標(biāo)識(shí)符標(biāo)識(shí)符類名類名 class ,struct,union 都可以定義一個(gè)類:都可以定義一個(gè)類: class缺省說明時(shí),其成員被認(rèn)為缺省說明時(shí),其成員被認(rèn)為是私有的是私有的 struct 若不特別指出,其所有成員若不特別指出,其所有成員都是公有的都是公有的 union其所有成員都是公有的,且其所有
16、成員都是公有的,且不能更改不能更改華南理工大學(xué)計(jì)算機(jī)學(xué)院華南理工大學(xué)計(jì)算機(jī)學(xué)院 周靄如周靄如 20122012w 6.1.1 6.1.1 定義類和對象定義類和對象 / 例例6-1 一個(gè)類的例子一個(gè)類的例子#includeusing namespace std ;class Tdate public: void Set(int m, int d, int y ) month = m ; day = d ; year = y ; int IsLeapYear() return ( year%4 = 0 & year%100 != 0 )|( year%400 = 0); void Prin
17、t() cout year . month . day endl ; private: int month; int day; int year;int main() Tdate ; a.Set (10, 16, 2003) ; a.Print() ;Tdate 類型的一個(gè)類型的一個(gè)對象(實(shí)例)對象(實(shí)例)華南理工大學(xué)計(jì)算機(jī)學(xué)院華南理工大學(xué)計(jì)算機(jī)學(xué)院 周靄如周靄如 20122012w 6.1.1 6.1.1 定義類和對象定義類和對象 / 例例6-1 一個(gè)類的例子一個(gè)類的例子#includeusing namespace std ;class Tdate public: void Set(int
18、 m, int d, int y ) month = m ; day = d ; year = y ; int IsLeapYear() return ( year%4 = 0 & year%100 != 0 )|( year%400 = 0); void Print() cout year . month . day endl ; private: int month; int day; int year;int main() Tdate a ; a.Set (10, 16, 2003) ; a.Print() ; 類由成員構(gòu)成: 數(shù)據(jù)成員數(shù)據(jù)成員描述對象的屬性 成員函數(shù)成員函數(shù)描述
19、對象的方法華南理工大學(xué)計(jì)算機(jī)學(xué)院華南理工大學(xué)計(jì)算機(jī)學(xué)院 周靄如周靄如 20122012w 6.1.1 6.1.1 定義類和對象定義類和對象 / 例例6-1 一個(gè)類的例子一個(gè)類的例子#includeusing namespace std ;class Tdate public: void Set(int m, int d, int y ) month = m ; day = d ; year = y ; int IsLeapYear() return ( year%4 = 0 & year%100 != 0 )|( year%400 = 0); void Print() cout yea
20、r . month . day endl ; private: int month; int day; int year;int main() Tdate a ; a.Set (10, 16, 2003) ; a.Print() ;int month; int day; int year;數(shù)據(jù)成員數(shù)據(jù)成員華南理工大學(xué)計(jì)算機(jī)學(xué)院華南理工大學(xué)計(jì)算機(jī)學(xué)院 周靄如周靄如 20122012w 6.1.1 6.1.1 定義類和對象定義類和對象 / 例例6-1 一個(gè)類的例子一個(gè)類的例子#includeusing namespace std ;class Tdate public: void Set(int
21、m, int d, int y ) month = m ; day = d ; year = y ; int IsLeapYear() return ( year%4 = 0 & year%100 != 0 )|( year%400 = 0); void Print() cout year . month . day endl ; private: int month; int day; int year;int main() Tdate a ; a.Set (10, 16, 2003) ; a.Print() ; void Set(int m, int d, int y ) mont
22、h = m ; day = d ; year = y ; int IsLeapYear() return ( year%4 = 0 & year%100 != 0 )|( year%400 = 0); void Print() cout year . month . day endl ; 類中定義成員函數(shù)類中定義成員函數(shù)內(nèi)聯(lián)函數(shù)處理內(nèi)聯(lián)函數(shù)處理華南理工大學(xué)計(jì)算機(jī)學(xué)院華南理工大學(xué)計(jì)算機(jī)學(xué)院 周靄如周靄如 20122012w 6.1.1 6.1.1 定義類和對象定義類和對象 / 例例6-1 一個(gè)類的例子一個(gè)類的例子#includeusing namespace std ;class Tda
23、te public: void Set(int m, int d, int y ) month = m ; day = d ; year = y ; int IsLeapYear() return ( year%4 = 0 & year%100 != 0 )|( year%400 = 0); void Print() cout year . month . day endl ; private: int month; int day; int year;int main() Tdate a ; a.Set (10, 16, 2003) ; a.Print() ; void Set(in
24、t m, int d, int y ) ; int IsLeapYear() ; void Print() ;在類外定義在類外定義成員函數(shù)成員函數(shù) void Set(int m, int d, int y ) month = m ; day = d ; year = y ; int IsLeapYear() return ( year%4 = 0 & year%100 != 0 )|( year%400 = 0); void Print() cout year.month.dayendl ; 華南理工大學(xué)計(jì)算機(jī)學(xué)院華南理工大學(xué)計(jì)算機(jī)學(xué)院 周靄如周靄如 20122012w 6.1.1 6
25、.1.1 定義類和對象定義類和對象 / 例6-1 一個(gè)類的例子#includeusing namespace std ;class Tdate public: void Set(int m, int d, int y ) month = m ; day = d ; year = y ; int IsLeapYear() return ( year%4 = 0 & year%100 != 0 )|( year%400 = 0); void Print() cout year . month . day endl ; private: int month; int day; int yea
26、r;int main() Tdate a ; a.Set (10, 16, 2003) ; a.Print() ;成員的性質(zhì)由關(guān)鍵字成員的性質(zhì)由關(guān)鍵字public、protected、private 決定決定公有公有 公有段的成員是提供給外部的接口公有段的成員是提供給外部的接口 保護(hù)保護(hù) 保護(hù)段成員在該類和它的派生類中可見保護(hù)段成員在該類和它的派生類中可見 私有私有 私有段成員僅在類中可見私有段成員僅在類中可見各段中既可以包含數(shù)據(jù)成員,也可以包含成員函數(shù)各段中既可以包含數(shù)據(jù)成員,也可以包含成員函數(shù)華南理工大學(xué)計(jì)算機(jī)學(xué)院華南理工大學(xué)計(jì)算機(jī)學(xué)院 周靄如周靄如 20122012w 6.1.1 6.1
27、.1 定義類和對象定義類和對象 / 例6-1 一個(gè)類的例子#includeusing namespace std ;class Tdate public: void Set(int m, int d, int y ) month = m ; day = d ; year = y ; int IsLeapYear() return ( year%4 = 0 & year%100 != 0 )|( year%400 = 0); void Print() cout year . month . day endl ; private: int month; int day; int year;
28、int main() Tdate a ; a.Set (10, 16, 2003) ; a.Print() ; class 類名類名 public:公有段數(shù)據(jù)成員和成員函數(shù)公有段數(shù)據(jù)成員和成員函數(shù) ; protected: 保護(hù)段數(shù)據(jù)成員和成員函數(shù)保護(hù)段數(shù)據(jù)成員和成員函數(shù) ; private:私有數(shù)據(jù)成員和成員函數(shù)私有數(shù)據(jù)成員和成員函數(shù) ; ; 華南理工大學(xué)計(jì)算機(jī)學(xué)院華南理工大學(xué)計(jì)算機(jī)學(xué)院 周靄如周靄如 20122012w 6.1.1 6.1.1 定義類和對象定義類和對象 類說明的一般形式為:類說明的一般形式為: class 類名類名 public:公有段數(shù)據(jù)成員和成員函數(shù)公有段數(shù)據(jù)成員和成員
29、函數(shù) ; protected: 保護(hù)段數(shù)據(jù)成員和成員函數(shù)保護(hù)段數(shù)據(jù)成員和成員函數(shù) ; private:私有數(shù)據(jù)成員和成員函數(shù)私有數(shù)據(jù)成員和成員函數(shù) ; ; 1. 允許已定義類名出現(xiàn)在類的說明中允許已定義類名出現(xiàn)在類的說明中例:例: class link link * next ; ;/ 聲明一個(gè)指向聲明一個(gè)指向link類類型的指針類類型的指針華南理工大學(xué)計(jì)算機(jī)學(xué)院華南理工大學(xué)計(jì)算機(jī)學(xué)院 周靄如周靄如 20122012w 6.1.1 6.1.1 定義類和對象定義類和對象 類說明的一般形式為:類說明的一般形式為: class 類名類名 public:公有段數(shù)據(jù)成員和成員函數(shù)公有段數(shù)據(jù)成員和成員函數(shù)
30、 ; protected: 保護(hù)段數(shù)據(jù)成員和成員函數(shù)保護(hù)段數(shù)據(jù)成員和成員函數(shù) ; private:私有數(shù)據(jù)成員和成員函數(shù)私有數(shù)據(jù)成員和成員函數(shù) ; ; 1. 允許已定義類名出現(xiàn)在類的說明中允許已定義類名出現(xiàn)在類的說明中例:例: class X ; class Y X dataMember ; ;/ 聲明一個(gè)類類型數(shù)據(jù)成員聲明一個(gè)類類型數(shù)據(jù)成員華南理工大學(xué)計(jì)算機(jī)學(xué)院華南理工大學(xué)計(jì)算機(jī)學(xué)院 周靄如周靄如 20122012w 6.1.1 6.1.1 定義類和對象定義類和對象 類說明的一般形式為:類說明的一般形式為: class 類名類名 public:公有段數(shù)據(jù)成員和成員函數(shù)公有段數(shù)據(jù)成員和成員函數(shù)
31、 ; protected: 保護(hù)段數(shù)據(jù)成員和成員函數(shù)保護(hù)段數(shù)據(jù)成員和成員函數(shù) ; private:私有數(shù)據(jù)成員和成員函數(shù)私有數(shù)據(jù)成員和成員函數(shù) ; ; 1. 允許已定義類名出現(xiàn)在類的說明中允許已定義類名出現(xiàn)在類的說明中例:例: class dataMember ; ;/ 錯(cuò)誤錯(cuò)誤錯(cuò)誤錯(cuò)誤無窮遞歸結(jié)構(gòu)無窮遞歸結(jié)構(gòu)華南理工大學(xué)計(jì)算機(jī)學(xué)院華南理工大學(xué)計(jì)算機(jī)學(xué)院 周靄如周靄如 20122012w 6.1.1 6.1.1 定義類和對象定義類和對象 類說明的一般形式為:類說明的一般形式為: class 類名類名 public:公有段數(shù)據(jù)成員和成員函數(shù)公有段數(shù)據(jù)成員和成員函數(shù) ; protected: 保護(hù)
32、段數(shù)據(jù)成員和成員函數(shù)保護(hù)段數(shù)據(jù)成員和成員函數(shù) ; private:私有數(shù)據(jù)成員和成員函數(shù)私有數(shù)據(jù)成員和成員函數(shù) ; ; 1. 允許已定義類名出現(xiàn)在類的說明中允許已定義類名出現(xiàn)在類的說明中2. 類可以無名,用于直接聲明對象類可以無名,用于直接聲明對象例:例: class mydate ;/ 直接直接聲明一個(gè)對象聲明一個(gè)對象華南理工大學(xué)計(jì)算機(jī)學(xué)院華南理工大學(xué)計(jì)算機(jī)學(xué)院 周靄如周靄如 20122012w 6.1.1 6.1.1 定義類和對象定義類和對象 類說明的一般形式為:類說明的一般形式為: class 類名類名 public:公有段數(shù)據(jù)成員和成員函數(shù)公有段數(shù)據(jù)成員和成員函數(shù) ; protecte
33、d: 保護(hù)段數(shù)據(jù)成員和成員函數(shù)保護(hù)段數(shù)據(jù)成員和成員函數(shù) ; private:私有數(shù)據(jù)成員和成員函數(shù)私有數(shù)據(jù)成員和成員函數(shù) ; ; 1. 允許已定義類名出現(xiàn)在類的說明中允許已定義類名出現(xiàn)在類的說明中2. 類可以無名,用于直接聲明對象類可以無名,用于直接聲明對象/例例6-2#includeusing namespace std ;class empty ;int main() empty e1 ; cout &e1 = &e1 endl ; cout sizeof e1 = sizeof(e1) endl ; 3. 類是一個(gè)程序包??梢灾挥袛?shù)據(jù)成員或只有成員函數(shù),或者為空。類是一個(gè)
34、程序包??梢灾挥袛?shù)據(jù)成員或只有成員函數(shù),或者為空。 一個(gè)空類一個(gè)空類華南理工大學(xué)計(jì)算機(jī)學(xué)院華南理工大學(xué)計(jì)算機(jī)學(xué)院 周靄如周靄如 20122012w 6.1.1 6.1.1 定義類和對象定義類和對象 類說明的一般形式為:類說明的一般形式為: class 類名類名 public:公有段數(shù)據(jù)成員和成員函數(shù)公有段數(shù)據(jù)成員和成員函數(shù) ; protected: 保護(hù)段數(shù)據(jù)成員和成員函數(shù)保護(hù)段數(shù)據(jù)成員和成員函數(shù) ; private:私有數(shù)據(jù)成員和成員函數(shù)私有數(shù)據(jù)成員和成員函數(shù) ; ; 1. 允許已定義類名出現(xiàn)在類的說明中允許已定義類名出現(xiàn)在類的說明中2. 類可以無名,用于直接聲明對象類可以無名,用于直接聲明
35、對象3. 類是一個(gè)程序包??梢灾挥袛?shù)據(jù)成員或只有成員函數(shù),或者為空。類是一個(gè)程序包??梢灾挥袛?shù)據(jù)成員或只有成員函數(shù),或者為空。 /例例6-2#includeusing namespace std ;class empty ;int main() empty e1 ; cout &e1 = &e1 endl ; cout sizeof e1 = sizeof(e1) endl ; 空類對象空類對象華南理工大學(xué)計(jì)算機(jī)學(xué)院華南理工大學(xué)計(jì)算機(jī)學(xué)院 周靄如周靄如 20122012w 6.1.1 6.1.1 定義類和對象定義類和對象 類說明的一般形式為:類說明的一般形式為: class 類
36、名類名 public:公有段數(shù)據(jù)成員和成員函數(shù)公有段數(shù)據(jù)成員和成員函數(shù) ; protected: 保護(hù)段數(shù)據(jù)成員和成員函數(shù)保護(hù)段數(shù)據(jù)成員和成員函數(shù) ; private:私有數(shù)據(jù)成員和成員函數(shù)私有數(shù)據(jù)成員和成員函數(shù) ; ; 1. 允許已定義類名出現(xiàn)在類的說明中允許已定義類名出現(xiàn)在類的說明中2. 類可以無名,用于直接聲明對象類可以無名,用于直接聲明對象/例例6-2#includeusing namespace std ;class empty ;int main() empty e1 ; cout &e1 = &e1 endl ; cout sizeof e1 = sizeof(e
37、1) ” 運(yùn)算符訪問對象成員運(yùn)算符訪問對象成員 w 6.1.2 6.1.2 訪問對象成員訪問對象成員 /例例6-3 訪問對象的公有成員訪問對象的公有成員 #includeusing namespace std ;class Tclass public: int x,y ; void print() cout x “,” ” 運(yùn)算符訪問對象成員運(yùn)算符訪問對象成員 w 6.1.2 6.1.2 訪問對象成員訪問對象成員 /例例6-3 訪問對象的公有成員訪問對象的公有成員#includeusing namespace std ;class Tclass: int x,y ; void print()
38、cout x “,” ” 運(yùn)算符訪問對象成員運(yùn)算符訪問對象成員 w 6.1.2 6.1.2 訪問對象成員訪問對象成員 /例例6-3 訪問對象的公有成員訪問對象的公有成員#includeusing namespace std ;class Tclass: int x,y ; void print() cout x “,” ” 運(yùn)算符訪問對象成員運(yùn)算符訪問對象成員 w 6.1.2 6.1.2 訪問對象成員訪問對象成員 /例例6-4 用指針訪問對象成員用指針訪問對象成員 #includeusing namespace std ;class Tclass public : int x, y ; voi
39、d print() cout x , y x + ptf-y ) ; int main() Tclass test, * pt = new(Tclass) ; pt-x = 100 ; pt-y = 200 ; pt-print() ; test.x = 150 ; test.y = 450 ; test.print() ; cout x+y= ” 運(yùn)算符訪問對象成員運(yùn)算符訪問對象成員 w 6.1.2 6.1.2 訪問對象成員訪問對象成員 /例例6-4 用指針訪問對象成員用指針訪問對象成員 #includeusing namespace std ;class Tclass public : i
40、nt x, y ; void print() cout x , y x + ptf-y ) ; int main() Tclass test, * pt = ; pt-x = 100 ; pt-y = 200 ; pt-print() ; test.x = 150 ; test.y = 450 ; test.print() ; cout x+y= ” 運(yùn)算符訪問對象成員運(yùn)算符訪問對象成員 w 6.1.2 6.1.2 訪問對象成員訪問對象成員 /例例6-4 用指針訪問對象成員用指針訪問對象成員 #includeusing namespace std ;class Tclass public :
41、int x, y ; void print() cout x , y x + ptf-y ) ; int main() Tclass test, * pt = new(Tclass) ; = 100 ; = 200 ; ; test.x = 150 ; test.y = 450 ; test.print() ; cout x+y= ” 運(yùn)算符訪問對象成員運(yùn)算符訪問對象成員 w 6.1.2 6.1.2 訪問對象成員訪問對象成員 /例例6-4 用指針訪問對象成員用指針訪問對象成員 #includeusing namespace std ;class Tclass public : int x, y
42、 ; void print() cout x , y x + ptf-y ) ; int main() Tclass test, * pt = new(Tclass) ; pt-x = 100 ; pt-y = 200 ; pt-print() ; test.x = 150 ; test.y = 450 ; test.print() ; cout x+y= ” 運(yùn)算符訪問對象成員運(yùn)算符訪問對象成員 w 6.1.2 6.1.2 訪問對象成員訪問對象成員 /例例6-4 用指針訪問對象成員用指針訪問對象成員 #includeusing namespace std ;class Tclass publ
43、ic : int x, y ; void print() cout x , y x + ptf-y ) ; int main() Tclass test, * pt = new(Tclass) ; pt-x = 100 ; pt-y = 200 ; pt-print() ; test.x = 150 ; test.y = 450 ; test.print() ; cout x+y= add() ;向函數(shù)向函數(shù)傳遞對象地址傳遞對象地址 華南理工大學(xué)計(jì)算機(jī)學(xué)院華南理工大學(xué)計(jì)算機(jī)學(xué)院 周靄如周靄如 20122012w 6.1.3 this6.1.3 this指針指針 #include /例例6-5u
44、sing namespace std ;class Simple int x, y ; public : void setXY ( int a, int b) x = a ; y = b ; void printXY() cout x , y endl ; ; ;int main() Simple obj1, obj2, obj3 ; obj1 . setXY ( 10, 15 ) ; obj1 . printXY () ; obj2 . setXY ( 20, 25 ) ; obj2 . printXY () ; obj3 . setXY ( 30, 35 ) ; obj3 . printX
45、Y () ;華南理工大學(xué)計(jì)算機(jī)學(xué)院華南理工大學(xué)計(jì)算機(jī)學(xué)院 周靄如周靄如 20122012w 6.1.3 this6.1.3 this指針指針 #include /例例6-5using namespace std ;class Simple int x, y ; public : void setXY ( int a, int b) x = a ; y = b ; void printXY() cout x , y endl ; ; ;int main() Simple obj1, obj2, obj3 ; obj1 . setXY ( 10, 15 ) ; obj1 . printXY ()
46、; obj2 . setXY ( 20, 25 ) ; obj2 . printXY () ; obj3 . setXY ( 30, 35 ) ; obj3 . printXY () ;obj1.xobj1.yobj2.xobj2.yobj3.xobj3.y華南理工大學(xué)計(jì)算機(jī)學(xué)院華南理工大學(xué)計(jì)算機(jī)學(xué)院 周靄如周靄如 20122012w 6.1.3 this6.1.3 this指針指針 #include /例例6-5using namespace std ;class Simple int x, y ; public : void setXY ( int a, int b) x = a ; y
47、= b ; void printXY() cout x , y endl ; ; ;int main() Simple obj1, obj2, obj3 ; obj1 . setXY ( 10, 15 ) ; obj1 . printXY () ; obj2 . setXY ( 20, 25 ) ; obj2 . printXY () ; obj3 . setXY ( 30, 35 ) ; obj3 . printXY () ;obj1.xobj1.yobj2.xobj2.yobj3.xobj3.y華南理工大學(xué)計(jì)算機(jī)學(xué)院華南理工大學(xué)計(jì)算機(jī)學(xué)院 周靄如周靄如 20122012w 6.1.3 th
48、is6.1.3 this指針指針 #include /例例6-5using namespace std ;class Simple int x, y ; public : void setXY ( int a, int b) x = a ; y = b ; void printXY() cout x , y endl ; ; ;int main() Simple obj1, obj2, obj3 ; obj1 . setXY ( 10, 15 ) ; obj1 . printXY () ; obj2 . setXY ( 20, 25 ) ; obj2 . printXY () ; obj3 .
49、 setXY ( 30, 35 ) ; obj3 . printXY () ;obj1.xobj1.yobj2.xobj2.yobj3.xobj3.y向哪個(gè)對象向哪個(gè)對象的數(shù)據(jù)成員賦值?的數(shù)據(jù)成員賦值? 華南理工大學(xué)計(jì)算機(jī)學(xué)院華南理工大學(xué)計(jì)算機(jī)學(xué)院 周靄如周靄如 20122012w 6.1.3 this6.1.3 this指針指針 #include /例例6-5using namespace std ;class Simple int x, y ; public : void setXY ( int a, int b) x = a ; y = b ; void printXY() cout x
50、 , y x = a ; this-y = b ; obj1 . setXY ( 10, 15, &obj1 ) ;成員函數(shù)隱含定義成員函數(shù)隱含定義 this 指針指針接受調(diào)用對象的地址接受調(diào)用對象的地址華南理工大學(xué)計(jì)算機(jī)學(xué)院華南理工大學(xué)計(jì)算機(jī)學(xué)院 周靄如周靄如 20122012w 6.1.3 this6.1.3 this指針指針 #include /例例6-5using namespace std ;class Simple int x, y ; public : void setXY ( int a, int b) x = a ; y = b ; void printXY() co
51、ut x , y x = a ; this-y = b ; this 指針不能顯式聲明指針不能顯式聲明華南理工大學(xué)計(jì)算機(jī)學(xué)院華南理工大學(xué)計(jì)算機(jī)學(xué)院 周靄如周靄如 20122012w 6.1.3 this6.1.3 this指針指針 #include /例例6-5using namespace std ;class Simple int x, y ; public : void setXY ( int a, int b) x = a ; y = b ; void printXY() cout x , y x = a ; this-y = b ; this 指針不能顯式聲明指針不能顯式聲明可以顯式
52、使用可以顯式使用obj1 . setXY ( 10, 15, &obj1 ) ;華南理工大學(xué)計(jì)算機(jī)學(xué)院華南理工大學(xué)計(jì)算機(jī)學(xué)院 周靄如周靄如 20122012w 6.1.3 this6.1.3 this指針指針 #include /例例6-5using namespace std ;class Simple int x, y ; public : void setXY ( int a, int b) x = a ; y = b ; void printXY() cout x , y endl ; ; ;int main() Simple obj1, obj2, obj3 ; obj1 .
53、 setXY ( 10, 15 ) ; obj1 . printXY () ; obj2 . setXY ( 20, 25 ) ; obj2 . printXY () ; obj3 . setXY ( 30, 35 ) ; obj3 . printXY () ;obj1.xobj1.yobj2.xobj2.yobj3.xobj3.y通過調(diào)用函數(shù)的對象通過調(diào)用函數(shù)的對象this 指針獲取對象地址指針獲取對象地址華南理工大學(xué)計(jì)算機(jī)學(xué)院華南理工大學(xué)計(jì)算機(jī)學(xué)院 周靄如周靄如 20122012w 6.1.3 this6.1.3 this指針指針 #include /例例6-5using namespac
54、e std ;class Simple int x, y ; public : void setXY ( int a, int b) x = a ; y = b ; void printXY() cout x , y endl ; ; ;int main() Simple obj1, obj2, obj3 ; obj1 . setXY ( 10, 15 ) ; obj1 . printXY () ; obj2 . setXY ( 20, 25 ) ; obj2 . printXY () ; obj3 . setXY ( 30, 35 ) ; obj3 . printXY () ;1015obj
55、1.xobj1.yobj2.xobj2.yobj3.xobj3.y華南理工大學(xué)計(jì)算機(jī)學(xué)院華南理工大學(xué)計(jì)算機(jī)學(xué)院 周靄如周靄如 20122012w 6.1.3 this6.1.3 this指針指針 #include /例例6-5using namespace std ;class Simple int x, y ; public : void setXY ( int a, int b) x = a ; y = b ; void printXY() cout x , y endl ; ; ;int main() Simple obj1, obj2, obj3 ; obj1 . setXY ( 10
56、, 15 ) ; obj1 . printXY () ; obj2 . setXY ( 20, 25 ) ; obj2 . printXY () ; obj3 . setXY ( 30, 35 ) ; obj3 . printXY () ;1015obj1.xobj1.yobj2.xobj2.yobj3.xobj3.y華南理工大學(xué)計(jì)算機(jī)學(xué)院華南理工大學(xué)計(jì)算機(jī)學(xué)院 周靄如周靄如 20122012w 6.1.3 this6.1.3 this指針指針 #include /例例6-5using namespace std ;class Simple int x, y ; public : void s
57、etXY ( int a, int b) x = a ; y = b ; void printXY() cout x , y endl ; ; ;int main() Simple obj1, obj2, obj3 ; obj1 . setXY ( 10, 15 ) ; obj1 . printXY () ; obj2 . setXY ( 20, 25 ) ; obj2 . printXY () ; obj3 . setXY ( 30, 35 ) ; obj3 . printXY () ;1015obj1.xobj1.yobj2.xobj2.yobj3.xobj3.y在在 obj1 上操作上操
58、作 10 , 15 20 , 25 30 , 35華南理工大學(xué)計(jì)算機(jī)學(xué)院華南理工大學(xué)計(jì)算機(jī)學(xué)院 周靄如周靄如 20122012w 6.1.3 this6.1.3 this指針指針 #include /例例6-5using namespace std ;class Simple int x, y ; public : void setXY ( int a, int b) x = a ; y = b ; void printXY() cout x , y endl ; ; ;int main() Simple obj1, obj2, obj3 ; obj1 . setXY ( 10, 15 ) ;
59、 obj1 . printXY () ; obj2 . setXY ( 20, 25 ) ; obj2 . printXY () ; obj3 . setXY ( 30, 35 ) ; obj3 . printXY () ;1015obj1.xobj1.yobj2.xobj2.yobj3.xobj3.y 10 , 15 20 , 25 30 , 35華南理工大學(xué)計(jì)算機(jī)學(xué)院華南理工大學(xué)計(jì)算機(jī)學(xué)院 周靄如周靄如 20122012w 6.1.3 this6.1.3 this指針指針 #include /例例6-5using namespace std ;class Simple int x, y ;
60、 public : void setXY ( int a, int b) x = a ; y = b ; void printXY() cout x , y endl ; ; ;int main() Simple obj1, obj2, obj3 ; obj1 . setXY ( 10, 15 ) ; obj1 . printXY () ; obj2 . setXY ( 20, 25 ) ; obj2 . printXY () ; obj3 . setXY ( 30, 35 ) ; obj3 . printXY () ;1015obj1.xobj1.yobj2.xobj2.yobj3.xobj3.y 10 , 15 20 , 25 30 , 35在在 obj2 上操作上操作華南理工大學(xué)計(jì)算機(jī)學(xué)院華南理工大學(xué)計(jì)算機(jī)學(xué)院 周靄如周靄如 20122012w 6.1.3 this6.
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 單位工程劃分課件
- 華清宮介紹教學(xué)課件
- 廣南一中初小數(shù)學(xué)試卷
- 健康類課件小腳印
- 2025屆青海省海東市高一物理第二學(xué)期期末學(xué)業(yè)質(zhì)量監(jiān)測試題含解析
- 帶鎖起釘器項(xiàng)目投資可行性研究分析報(bào)告(2024-2030版)
- 中國蒜頭破碎機(jī)行業(yè)市場前景預(yù)測及投資價(jià)值評(píng)估分析報(bào)告
- 中國無人機(jī)戰(zhàn)爭行業(yè)市場前景預(yù)測及投資價(jià)值評(píng)估分析報(bào)告
- 2025年中國淡菜干行業(yè)市場發(fā)展現(xiàn)狀及投資規(guī)劃建議報(bào)告
- 中國甘氨膽酸行業(yè)市場調(diào)查報(bào)告
- 2023年SQE供應(yīng)商質(zhì)量工程師年度總結(jié)及下年規(guī)劃
- 品牌形象設(shè)計(jì)之輔助圖形的操作
- 可用性控制程序
- 福建省泉州市泉州實(shí)驗(yàn)中學(xué)2024屆八上數(shù)學(xué)期末聯(lián)考模擬試題含解析
- 抖音員工號(hào)申請?jiān)诼氉C明參考模板
- 營養(yǎng)瓊脂培養(yǎng)基適用性驗(yàn)證
- 食堂委托管理合同標(biāo)準(zhǔn)范本(5篇)
- 千米鉆機(jī)操作規(guī)程
- (完整)雙溪課程評(píng)量表
- 第四章-康復(fù)心理學(xué)-心理評(píng)估
- 中醫(yī)外治技術(shù)排版稿
評(píng)論
0/150
提交評(píng)論