版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、華南理工大學計算機學院華南理工大學計算機學院 周靄如周靄如 20162016華南理工大學計算機學院華南理工大學計算機學院 周靄如周靄如 20162016第第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é)華南理工大學計算機學院華南理工大學計算機學院 周靄如周靄如 20162016 類(類(ClassClass)是面向?qū)ο蟪绦蛟O(shè)計()是面向?qū)ο蟪绦蛟O(shè)計(OOPOOP)實現(xiàn)信息封裝的基礎(chǔ)。)實現(xiàn)信息封裝的基礎(chǔ)。 類是用戶定義類型,也稱為類類型類是
2、用戶定義類型,也稱為類類型 每個類包含數(shù)據(jù)說明和一組操作數(shù)據(jù)或傳遞消息的函數(shù)。類的每個類包含數(shù)據(jù)說明和一組操作數(shù)據(jù)或傳遞消息的函數(shù)。類的 實例稱為對象實例稱為對象第第6 6章章 類與對象類與對象 華南理工大學計算機學院華南理工大學計算機學院 周靄如周靄如 20162016 面向?qū)ο缶幊痰某绦蚧締挝皇穷惷嫦驅(qū)ο缶幊痰某绦蚧締挝皇穷?類是數(shù)據(jù)和操作數(shù)據(jù)的函數(shù)的封裝類是數(shù)據(jù)和操作數(shù)據(jù)的函數(shù)的封裝 類的對象使用自己的方法完成對數(shù)據(jù)的操作類的對象使用自己的方法完成對數(shù)據(jù)的操作 類可以隱藏數(shù)據(jù)和操作細節(jié),對象通過類接口與外部通信類可以隱藏數(shù)據(jù)和操作細節(jié),對象通過類接口與外部通信 6.1 6.1 類與對
3、象類與對象 華南理工大學計算機學院華南理工大學計算機學院 周靄如周靄如 201620166.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ù)組類華南理工大學計算機學院華南理工大學計算機學院 周靄如周靄如 20162016class Array/定義數(shù)組類 int *ap ; int len
4、; public: Array( int size )/ 建立數(shù)組 len= 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
5、, int ) ; int main() int a 10 , b 10 ; . Sort ( a , 10 ) ; Sort ( b , 10 ) ; Add ( a , b , 10) ; .數(shù)組與數(shù)組類數(shù)組與數(shù)組類6.1 類與對象華南理工大學計算機學院華南理工大學計算機學院 周靄如周靄如 20162016class Array/定義數(shù)組類 int *ap ; int len ; public: Array( int size )/ 建立數(shù)組 len= size ; ap = new int size ; void Sort ( ) ;/ 排序 / 重載算符 +函數(shù) Array opera
6、or + (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 ( b , 10 ) ; Add ( a , b , 10) ; .數(shù)組與數(shù)組類數(shù)組與數(shù)
7、組類class 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) ;類是數(shù)據(jù)和操作數(shù)據(jù)的函數(shù)的封裝6.1 類與對象華南理工大學計算機學院華南理工大學計算機學院 周靄如周靄如 20162016class Array/定義數(shù)組類 int *ap ; int len ; public: Array( int size
8、 )/ 建立數(shù)組 len= 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
9、a 10 , b 10 ; . Sort ( a , 10 ) ; Sort ( b , 10 ) ; Add ( a , b , 10) ; .數(shù)組與數(shù)組類數(shù)組與數(shù)組類對象使用自己的方法對數(shù)據(jù)操作6.1 類與對象華南理工大學計算機學院華南理工大學計算機學院 周靄如周靄如 201620166.1 類與對象華南理工大學計算機學院華南理工大學計算機學院 周靄如周靄如 20162016class 鐘 private : 鐘的構(gòu)造; public : 讀取時間值讀取時間值 ; 調(diào)整時間值調(diào)整時間值 ;對象通過類接口與外部通信6.1 類與對象華南理工大學計算機學院華南理工大學計算機學院 周靄如周靄如 2
10、01620166.1.1 6.1.1 定義類和對象定義類和對象 / 例例6-1 一個類的例子一個類的例子#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 mo
11、nth; int day; int year;int main() Tdate a ; a.Set (10, 16, 2003) ; a.Print() ;華南理工大學計算機學院華南理工大學計算機學院 周靄如周靄如 201620166.1.1 6.1.1 定義類和對象定義類和對象 / 例6-1 一個類的例子#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
12、= 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 ( year%4 = 0
13、 & year%100 != 0 )|( year%400 = 0); void Print() cout year . month . day endl ; private: int month; int day; int year;華南理工大學計算機學院華南理工大學計算機學院 周靄如周靄如 201620166.1.1 6.1.1 定義類和對象定義類和對象 / 例6-1 一個類的例子#includeusing namespace std ;class Tdate public: void Set(int m, int d, int y ) month = m ; day = d ;
14、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() ;class Tdate public: void Set(int m, int d, int y ) month = m ; day = d ; yea
15、r = 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;關(guān)鍵字關(guān)鍵字定義一個類定義一個類標識符標識符類名類名 class ,struct,union 都可以定義一個類:都可以定義一個類: class缺省說明時,其成員被認為缺省說明時,其成員被認為是私有的是私有的 struct 若不特別指出,其所有成員若不特別指出,其所有成
16、員都是公有的都是公有的 union其所有成員都是公有的,且其所有成員都是公有的,且不能更改不能更改華南理工大學計算機學院華南理工大學計算機學院 周靄如周靄如 201620166.1.1 6.1.1 定義類和對象定義類和對象 / 例例6-1 一個類的例子一個類的例子#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 !=
17、0 )|( year%400 = 0); void Print() cout year . month . day endl ; private: int month; int day; int year;int main() Tdate ; a.Set (10, 16, 2003) ; a.Print() ;Tdate 類型的一個類型的一個對象(實例)對象(實例)華南理工大學計算機學院華南理工大學計算機學院 周靄如周靄如 201620166.1.1 6.1.1 定義類和對象定義類和對象 / 例例6-1 一個類的例子一個類的例子#includeusing namespace std ;clas
18、s 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() Tdate a ; a.Set (10, 16, 2003) ; a.Print() ; 類由成員構(gòu)成
19、: 數(shù)據(jù)成員數(shù)據(jù)成員描述對象的屬性 成員函數(shù)成員函數(shù)描述對象的方法華南理工大學計算機學院華南理工大學計算機學院 周靄如周靄如 201620166.1.1 6.1.1 定義類和對象定義類和對象 / 例例6-1 一個類的例子一個類的例子#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 =
20、 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() ;int month; int day; int year;數(shù)據(jù)成員數(shù)據(jù)成員華南理工大學計算機學院華南理工大學計算機學院 周靄如周靄如 201620166.1.1 6.1.1 定義類和對象定義類和對象 / 例例6-1 一個類的例子一個類的例子#includeusing namespace std ;class Tda
21、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
22、t 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 ; 類中定義成員函數(shù)類中定義成員函數(shù)內(nèi)聯(lián)函數(shù)處理內(nèi)聯(lián)函數(shù)處理華南理工大學計算機學院華南理工大學計算機學院 周靄如周靄如 201620166.1.1 6.1.1 定義類和對象定義類和對象 / 例例6-1 一個類的例子一個類的例子#includeusing na
23、mespace 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() Tdate a ; a.Set (10, 16, 2003) ; a
24、.Print() ; void Set(int 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 ; 華南理工大學計算機學院華南理工大學計算機學院 周靄
25、如周靄如 201620166.1.1 6.1.1 定義類和對象定義類和對象 / 例6-1 一個類的例子#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 mon
26、th; int day; int year;int main() Tdate a ; a.Set (10, 16, 2003) ; a.Print() ;成員的性質(zhì)由關(guān)鍵字成員的性質(zhì)由關(guān)鍵字public、protected、private 決定決定公有公有 公有段的成員是提供給外部的接口公有段的成員是提供給外部的接口 保護保護 保護段成員在該類和它的派生類中可見保護段成員在該類和它的派生類中可見 私有私有 私有段成員僅在類中可見私有段成員僅在類中可見各段中既可以包含數(shù)據(jù)成員,也可以包含成員函數(shù)各段中既可以包含數(shù)據(jù)成員,也可以包含成員函數(shù)華南理工大學計算機學院華南理工大學計算機學院 周靄如周靄如
27、 201620166.1.1 6.1.1 定義類和對象定義類和對象 / 例6-1 一個類的例子#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;
28、int day; int year;int main() Tdate a ; a.Set (10, 16, 2003) ; a.Print() ; class 類名類名 public:公有段數(shù)據(jù)成員和成員函數(shù)公有段數(shù)據(jù)成員和成員函數(shù) ; protected: 保護段數(shù)據(jù)成員和成員函數(shù)保護段數(shù)據(jù)成員和成員函數(shù) ; private:私有數(shù)據(jù)成員和成員函數(shù)私有數(shù)據(jù)成員和成員函數(shù) ; ; 華南理工大學計算機學院華南理工大學計算機學院 周靄如周靄如 201620166.1.1 6.1.1 定義類和對象定義類和對象 類說明的一般形式為:類說明的一般形式為: class 類名類名 public:公有段數(shù)據(jù)成
29、員和成員函數(shù)公有段數(shù)據(jù)成員和成員函數(shù) ; protected: 保護段數(shù)據(jù)成員和成員函數(shù)保護段數(shù)據(jù)成員和成員函數(shù) ; private:私有數(shù)據(jù)成員和成員函數(shù)私有數(shù)據(jù)成員和成員函數(shù) ; ; 1. 允許已定義類名出現(xiàn)在類的說明中允許已定義類名出現(xiàn)在類的說明中例:例: class link link * next ; ;/ 聲明一個指向聲明一個指向link類類型的指針類類型的指針華南理工大學計算機學院華南理工大學計算機學院 周靄如周靄如 201620166.1.1 6.1.1 定義類和對象定義類和對象 類說明的一般形式為:類說明的一般形式為: class 類名類名 public:公有段數(shù)據(jù)成員和成員
30、函數(shù)公有段數(shù)據(jù)成員和成員函數(shù) ; protected: 保護段數(shù)據(jù)成員和成員函數(shù)保護段數(shù)據(jù)成員和成員函數(shù) ; private:私有數(shù)據(jù)成員和成員函數(shù)私有數(shù)據(jù)成員和成員函數(shù) ; ; 1. 允許已定義類名出現(xiàn)在類的說明中允許已定義類名出現(xiàn)在類的說明中例:例: class X ; class Y X dataMember ; ;/ 聲明一個類類型數(shù)據(jù)成員聲明一個類類型數(shù)據(jù)成員華南理工大學計算機學院華南理工大學計算機學院 周靄如周靄如 201620166.1.1 6.1.1 定義類和對象定義類和對象 類說明的一般形式為:類說明的一般形式為: class 類名類名 public:公有段數(shù)據(jù)成員和成員函數(shù)
31、公有段數(shù)據(jù)成員和成員函數(shù) ; protected: 保護段數(shù)據(jù)成員和成員函數(shù)保護段數(shù)據(jù)成員和成員函數(shù) ; private:私有數(shù)據(jù)成員和成員函數(shù)私有數(shù)據(jù)成員和成員函數(shù) ; ; 1. 允許已定義類名出現(xiàn)在類的說明中允許已定義類名出現(xiàn)在類的說明中例:例: class dataMember ; ;/ 錯誤錯誤錯誤錯誤無窮遞歸結(jié)構(gòu)無窮遞歸結(jié)構(gòu)華南理工大學計算機學院華南理工大學計算機學院 周靄如周靄如 201620166.1.1 6.1.1 定義類和對象定義類和對象 類說明的一般形式為:類說明的一般形式為: class 類名類名 public:公有段數(shù)據(jù)成員和成員函數(shù)公有段數(shù)據(jù)成員和成員函數(shù) ; pro
32、tected: 保護段數(shù)據(jù)成員和成員函數(shù)保護段數(shù)據(jù)成員和成員函數(shù) ; private:私有數(shù)據(jù)成員和成員函數(shù)私有數(shù)據(jù)成員和成員函數(shù) ; ; 1. 允許已定義類名出現(xiàn)在類的說明中允許已定義類名出現(xiàn)在類的說明中2. 類可以無名,用于直接聲明對象類可以無名,用于直接聲明對象例:例: class mydate ;/ 直接直接聲明一個對象聲明一個對象華南理工大學計算機學院華南理工大學計算機學院 周靄如周靄如 201620166.1.1 6.1.1 定義類和對象定義類和對象 類說明的一般形式為:類說明的一般形式為: class 類名類名 public:公有段數(shù)據(jù)成員和成員函數(shù)公有段數(shù)據(jù)成員和成員函數(shù) ;
33、protected: 保護段數(shù)據(jù)成員和成員函數(shù)保護段數(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. 類是一個程序包??梢灾挥袛?shù)據(jù)成員或只有成員函數(shù),或
34、者為空。類是一個程序包??梢灾挥袛?shù)據(jù)成員或只有成員函數(shù),或者為空。 一個空類一個空類華南理工大學計算機學院華南理工大學計算機學院 周靄如周靄如 201620166.1.1 6.1.1 定義類和對象定義類和對象 類說明的一般形式為:類說明的一般形式為: class 類名類名 public:公有段數(shù)據(jù)成員和成員函數(shù)公有段數(shù)據(jù)成員和成員函數(shù) ; protected: 保護段數(shù)據(jù)成員和成員函數(shù)保護段數(shù)據(jù)成員和成員函數(shù) ; private:私有數(shù)據(jù)成員和成員函數(shù)私有數(shù)據(jù)成員和成員函數(shù) ; ; 1. 允許已定義類名出現(xiàn)在類的說明中允許已定義類名出現(xiàn)在類的說明中2. 類可以無名,用于直接聲明對象類可以無名,
35、用于直接聲明對象3. 類是一個程序包??梢灾挥袛?shù)據(jù)成員或只有成員函數(shù),或者為空。類是一個程序包??梢灾挥袛?shù)據(jù)成員或只有成員函數(shù),或者為空。 /例例6-2#includeusing namespace std ;class empty ;int main() empty e1 ; cout &e1 = &e1 endl ; cout sizeof e1 = sizeof(e1) endl ; 空類對象空類對象華南理工大學計算機學院華南理工大學計算機學院 周靄如周靄如 201620166.1.1 6.1.1 定義類和對象定義類和對象 類說明的一般形式為:類說明的一般形式為: cla
36、ss 類名類名 public:公有段數(shù)據(jù)成員和成員函數(shù)公有段數(shù)據(jù)成員和成員函數(shù) ; protected: 保護段數(shù)據(jù)成員和成員函數(shù)保護段數(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 = size
37、of(e1) ” 運算符訪問對象成員運算符訪問對象成員 6.1.2 6.1.2 訪問對象成員訪問對象成員 /例例6-3 訪問對象的公有成員訪問對象的公有成員 #includeusing namespace std ;class Tclass public: int x,y ; void print() cout x “,” ” 運算符訪問對象成員運算符訪問對象成員 6.1.2 6.1.2 訪問對象成員訪問對象成員 /例例6-3 訪問對象的公有成員訪問對象的公有成員#includeusing namespace std ;class Tclass: int x,y ; void print()
38、cout x “,” ” 運算符訪問對象成員運算符訪問對象成員 6.1.2 6.1.2 訪問對象成員訪問對象成員 /例例6-3 訪問對象的公有成員訪問對象的公有成員#includeusing namespace std ;class Tclass: int x,y ; void print() cout x “,” ” 運算符訪問對象成員運算符訪問對象成員 6.1.2 6.1.2 訪問對象成員訪問對象成員 /例例6-4 用指針訪問對象成員用指針訪問對象成員 #includeusing namespace std ;class Tclass public : int x, y ; void pr
39、int() 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= ” 運算符訪問對象成員運算符訪問對象成員 6.1.2 6.1.2 訪問對象成員訪問對象成員 /例例6-4 用指針訪問對象成員用指針訪問對象成員 #includeusing namespace std ;class Tclass public : int x,
40、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= ” 運算符訪問對象成員運算符訪問對象成員 6.1.2 6.1.2 訪問對象成員訪問對象成員 /例例6-4 用指針訪問對象成員用指針訪問對象成員 #includeusing namespace std ;class Tclass public : int x, y
41、 ; 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= ” 運算符訪問對象成員運算符訪問對象成員 6.1.2 6.1.2 訪問對象成員訪問對象成員 /例例6-4 用指針訪問對象成員用指針訪問對象成員 #includeusing namespace std ;class Tclass public : int x, y ; void pr
42、int() 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= ” 運算符訪問對象成員運算符訪問對象成員 6.1.2 6.1.2 訪問對象成員訪問對象成員 /例例6-4 用指針訪問對象成員用指針訪問對象成員 #includeusing namespace std ;class Tclass public : int x,
43、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ù)傳遞對象地址傳遞對象地址 華南理工大學計算機學院華南理工大學計算機學院 周靄如周靄如 201620166.1.3 this6.1.3 this指針指針 #include /例例6-5using namespace
44、 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 () ;華南理工大學計算
45、機學院華南理工大學計算機學院 周靄如周靄如 201620166.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 () ; obj2 . setXY (
46、 20, 25 ) ; obj2 . printXY () ; obj3 . setXY ( 30, 35 ) ; obj3 . printXY () ;obj1.xobj1.yobj2.xobj2.yobj3.xobj3.y華南理工大學計算機學院華南理工大學計算機學院 周靄如周靄如 201620166.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
47、() 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華南理工大學計算機學院華南理工大學計算機學院 周靄如周靄如 201620166.1.3 this6.1.3 this指針指針 #in
48、clude /例例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 . setXY ( 30, 35 ) ;
49、obj3 . printXY () ;obj1.xobj1.yobj2.xobj2.yobj3.xobj3.y向哪個對象向哪個對象的數(shù)據(jù)成員賦值?的數(shù)據(jù)成員賦值? 華南理工大學計算機學院華南理工大學計算機學院 周靄如周靄如 201620166.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 =
50、b ; obj1 . setXY ( 10, 15, &obj1 ) ;成員函數(shù)隱含定義成員函數(shù)隱含定義 this 指針指針接受調(diào)用對象的地址接受調(diào)用對象的地址華南理工大學計算機學院華南理工大學計算機學院 周靄如周靄如 201620166.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
51、= b ; this 指針不能顯式聲明指針不能顯式聲明華南理工大學計算機學院華南理工大學計算機學院 周靄如周靄如 201620166.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 指針不能顯式聲明指針不能顯式聲明可以顯式使用可以顯式使用obj1 . setXY ( 10,
52、 15, &obj1 ) ;華南理工大學計算機學院華南理工大學計算機學院 周靄如周靄如 201620166.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 . p
53、rintXY () ; 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 指針獲取對象地址指針獲取對象地址華南理工大學計算機學院華南理工大學計算機學院 周靄如周靄如 201620166.1.3 this6.1.3 this指針指針 #include /例例6-5using namespace std ;class Simple int x, y ;
54、 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.xobj
55、3.y華南理工大學計算機學院華南理工大學計算機學院 周靄如周靄如 201620166.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 () ; obj
56、2 . setXY ( 20, 25 ) ; obj2 . printXY () ; obj3 . setXY ( 30, 35 ) ; obj3 . printXY () ;1015obj1.xobj1.yobj2.xobj2.yobj3.xobj3.y華南理工大學計算機學院華南理工大學計算機學院 周靄如周靄如 201620166.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
57、 ; 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 上操作上操作 10 , 15 20 , 25 30 , 35華南理工大學計算機
58、學院華南理工大學計算機學院 周靄如周靄如 201620166.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 () ; obj2 . setXY (
59、20, 25 ) ; obj2 . printXY () ; obj3 . setXY ( 30, 35 ) ; obj3 . printXY () ;1015obj1.xobj1.yobj2.xobj2.yobj3.xobj3.y 10 , 15 20 , 25 30 , 35華南理工大學計算機學院華南理工大學計算機學院 周靄如周靄如 201620166.1.3 this6.1.3 this指針指針 #include /例例6-5using namespace std ;class Simple int x, y ; public : void setXY ( int a, int b) x
60、 = 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 上操作上操作華南理工大學計算機學院華南理工大學計算機學院 周靄如周靄如 201620166.1.3 this6.1.3 this指針指針 #include /例例6-5using namespa
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年度新型能源汽車短期借用協(xié)議書4篇
- 2025年度文化產(chǎn)業(yè)發(fā)展基金投資合作合同4篇
- 2025年度智能家居櫥柜定制工程協(xié)議書4篇
- 2025年度新能源車輛租賃代理合同模板3篇
- 2024版離婚協(xié)議年范本
- 2025年單梁橋式起重機項目可行性研究報告-20250102-152444
- 2025年中鹽青海昆侖堿業(yè)有限公司招聘筆試參考題庫含答案解析
- 2025年四川壯禾人力資源有限公司招聘筆試參考題庫含答案解析
- 2025年中國郵政證券有限責任公司招聘筆試參考題庫含答案解析
- 2025年江蘇弘景建設(shè)規(guī)劃有限公司招聘筆試參考題庫含答案解析
- 漆畫漆藝 第三章
- CB/T 615-1995船底吸入格柵
- 光伏逆變器一課件
- 貨物供應、運輸、包裝說明方案
- (完整版)英語高頻詞匯800詞
- 《基礎(chǔ)馬來語》課程標準(高職)
- IEC61850研討交流之四-服務影射
- 《兒科學》新生兒窒息課件
- 材料力學壓桿穩(wěn)定
- 人教版小升初英語知識點匯總
- 靜態(tài)爆破專項施工方案
評論
0/150
提交評論