真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

C++對(duì)象指針—指向?qū)ο蟪蓡T的指針-創(chuàng)新互聯(lián)

對(duì)象有地址,存放對(duì)象初始地址的指針變量就是指向?qū)ο蟮闹羔樧兞俊?duì)象中的成員也有地址,存放對(duì)象成員地址的指針變量就是指向?qū)ο蟪蓡T的指針變量。

1、指向?qū)ο髷?shù)據(jù)成員的指針定義指向?qū)ο髷?shù)據(jù)成員的指針變量的方法和定義指向普通變量的指針變量方法相同。例如
  int *p1; //定義指向整型數(shù)據(jù)的指針變量
定義指向?qū)ο髷?shù)據(jù)成員的指針變量的一般形式為數(shù)據(jù)類型名 *指針變量名;如果Time類的數(shù)據(jù)成員hour為公用的整型數(shù)據(jù),則可以在類外通過(guò)指向?qū)ο髷?shù)據(jù)成員的指針變量訪問(wèn)對(duì)象數(shù)據(jù)成員hour。
  p1=&t1.hour;//將對(duì)象t1的數(shù)據(jù)成員hour的地址賦給p1,p1指向t1.hour
  cout<<*p1<
2、指向?qū)ο蟪蓡T函數(shù)的指針需要提醒讀者注意: 定義指向?qū)ο蟪蓡T函數(shù)的指針變量的方法和定義指向普通函數(shù)的指針變量方法有所不同。
成員函數(shù)與普通函數(shù)有一個(gè)最根本的區(qū)別: 它是類中的一個(gè)成員。編譯系統(tǒng)要求在上面的賦值語(yǔ)句中,指針變量的類型必須與賦值號(hào)右側(cè)函數(shù)的類型相匹配,要求在以下3方面都要匹配:
①函數(shù)參數(shù)的類型和參數(shù)個(gè)數(shù);
②函數(shù)返回值的類型;
③所屬的類。

定義指向成員函數(shù)的指針變量應(yīng)該采用下面的形式:
  void (Time::*p2)( );//定義p2為指向Time類中公用成員函數(shù)的指針變量

定義指向公用成員函數(shù)的指針變量的一般形式為
  數(shù)據(jù)類型名 (類名::*指針變量名)(參數(shù)表列);

可以讓它指向一個(gè)公用成員函數(shù),只需把公用成員函數(shù)的入口地址賦給一個(gè)指向公用成員函數(shù)的指針變量即可。如
  p2=&Time::get_time;
使指針變量指向一個(gè)公用成員函數(shù)的一般形式為
  指針變量名=&類名::成員函數(shù)名;
例9.7 有關(guān)對(duì)象指針的使用方法。
#include
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( ) //聲明公有成員函數(shù)
//定義公有成員函數(shù)
{
  cout<}
int main( )
{
  Time t1(10,13,56); //定義Time類對(duì)象t1
  int *p1=&t1.hour; //定義指向整型數(shù)據(jù)的指針變量p1,并使p1指向t1.hour
  cout<<* p1<  t1.get_time( ); //調(diào)用對(duì)象t1的成員函數(shù)get_time
  Time *p2=&t1; //定義指向Time類對(duì)象的指針變量p2,并使p2指向t1
  p2->get_time( ); //調(diào)用p2所指向?qū)ο?即t1)的get_time函數(shù)
  void (Time::*p3)( ); //定義指向Time類公用成員函數(shù)的指針變量p3
  p3=&Time::get_time; //使p3指向Time類公用成員函數(shù)get_time
  (t1.*p3)( ); //調(diào)用對(duì)象t1中p3所指的成員函數(shù)(即t1.get_time( ))
}
程序運(yùn)行結(jié)果為
10 (main函數(shù)第4行的輸出)
10:13:56 (main函數(shù)第5行的輸出)
10:13:56 (main函數(shù)第7行的輸出)
10:13:56 (main函數(shù)第10行的輸出)
可以看到為了輸出t1中hour,minute和sec的值,可以采用3種不同的方法。

幾點(diǎn)說(shuō)明:
(1) 從main函數(shù)第9行可以看出: 成員函數(shù)的入口地址的正確寫法是: &類名::成員函數(shù)名。
(2) main函數(shù)第8、9兩行可以合寫為一行:
  void (Time::*p3)( )=&Time::get_time; //定義指針變量時(shí)指定其指向C++對(duì)象指針—指向?qū)ο蟪蓡T的指
針

出處:http://see.xidian.edu.cn/cpp/biancheng/view/200.html

成都創(chuàng)新互聯(lián)公司成立與2013年,先為湖州等服務(wù)建站,湖州等地企業(yè),進(jìn)行企業(yè)商務(wù)咨詢服務(wù)。為湖州企業(yè)網(wǎng)站制作PC+手機(jī)+微官網(wǎng)三網(wǎng)同步一站式服務(wù)解決您的所有建站問(wèn)題。

////////////////////////eg2/////////////////////////////////

指向?qū)ο蟮闹羔?/strong>

      在建立對(duì)象時(shí),編譯系統(tǒng)會(huì)為每一個(gè)對(duì)象分配一定的存儲(chǔ)空間,以存放其成員。對(duì)象空間的起始地址就是對(duì)象指針。可以定義一個(gè)指針變量,用來(lái)存放對(duì)象的指針。

如果有一個(gè)類:

class Time

{public:

int hour;

int minute;

int sec;

void get_time;

};

void Time ::get_time()

{

cout<

}

在此基礎(chǔ)上有以下語(yǔ)句:

Time *pt;

Time t1;

pt = &t1;

這樣,pt就是指向Time類對(duì)象的指針變量,他只想對(duì)象t1。

定義指向類對(duì)象的指針變量的一般形式:

*pt            pt所指向的對(duì)象,即t1

(*pt).hour     pt所指向的對(duì)象中的hour成員,即t1.hour

pt->hour       pt所指向的對(duì)象中的hour成員,即t1.hour

(*pt).get_time()  調(diào)用pt所指向的對(duì)象中的get_time的函數(shù),即t1.get_time

pt->get_time()  調(diào)用pt所指向的對(duì)象中的get_time的函數(shù),即t1.get_time


網(wǎng)站題目:C++對(duì)象指針—指向?qū)ο蟪蓡T的指針-創(chuàng)新互聯(lián)
網(wǎng)頁(yè)鏈接:http://weahome.cn/article/hjjpg.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部