## 類型
指向對象的指針;
指向對象數據成員指針;
指向對象成員函數指針;
# 指向對象的指針
## 定義方式
類名 \*對象指針名
定義對象指針,不會調用構造函數,因為指針分配的空間是固定的,所以不需要調用構造函數來分配空間
# 指向對象數據成員的指針
## 定義方式
數據類型 \*指針變量
# 指向對象成員函數的指針
## 定義方式
數據類型名(類名::指針變量名)(參數列表)
**使指針變量指向成員函數:**指針變量名=類名::成員函數名
~~~
#include <iostream>
using namespace std;
?
class Time
{
public:
? Time(int,int,int);
? ? ? int hour;
? ? ? int minute;
? ? ? int sec;
? ? ? void get_time( ); ? ? ? ? ? ? ? //聲明公有成員函數
};
?
Time∷Time(int h,int m,int s)
{
hour=h;
? minute=m;
? sec=s;
}
?
void Time∷get_time( ) ? ? ? ? ? ? //定義公有成員函數
{
cout<<hour<<″:″<<minute<<″:″ <<sec<<endl;
}
?
int main( )
{
Time t1(10,13,56); ? ? ? ? ? ? ? //定義Time類對象t1
int *p1=&t1.hour; ? ?
? //定義指向整型數據的指針變量p1,并使p1指向t1.hour
? cout<<*p1<<endl; //輸出p1所指的數據成員t1.hour
? t1.get_time( ); ? ? //調用對象t1的成員函數get_time
? Time *p2=&t1; ? ? ? ? ? ? ? ? ? ?
? //定義指向Time類對象的指針變量p2,并使p2指向t1
? p2->get_time( ); ? ? ? ? ? ? ? ? //調用p2所指向對象(即t1)的get_time函數
? void (Time∷*p3)( ); ? ? ? ? ? ? //定義指向Time類公用成員函數的指針變量p3
? p3=&Time∷get_time; ? ? ? ? ? ? ?
? //使p3指向Time類公用成員函數get_time
? (t1.*p3)( ); ?
? //調用對象t1中p3所指的成員函數(即t1.get_time( ))
? return 0;
}
~~~
- 介紹
- 編程設計語言
- 第一章 對C++的初步認識
- 1.2 最簡單的C++程序
- 1.3 C++對C的補充
- 1.3.1 return
- 1.3.2 輸入輸出流
- 1.3.3 putchar 和 getchar
- 1.3.4 用const定義常變量
- 1.3.5 函數原型聲明
- 1.3.6 內置函數
- 1.3.7 函數重載
- 1.3.8 函數模板
- 1.3.9 有默認值的參數
- 1.3.10 作用域
- 1.3.11 const修飾指針
- 1.3.12 引用
- 1.3.13 生命期
- 1.3.14 變量
- 1.3.15 字符串變量
- 第二章 類與對象
- 2.2 類的聲明和對象的定義
- 2.3 類的成員函數
- 第三章 關于類和對象的進一步討論
- 3.1 構造函數
- 3.1.1 對象的初始化
- 3.1.2 構造函數
- 3.2 析構函數
- 3.3調用析構函數和構造函數的順序
- 3.4 對象數組
- 3.5 對象指針
- 3.6 共享數據的保護
- 3.7 對象的建立與釋放
- 3.8 對象的賦值與復制
- 3.9 靜態成員
- 3.10 友元
- 3.11 類模板
- 第四章 運算符重載
- 數據類型轉換
- 運算符重載
- 重載流插入運算符和流提取運算符
- 第五章 繼承與派生
- 繼承與派生
- 第六章 多態性與虛函數
- 多態性
- 虛函數
- 純虛函數與抽象類