争怎路由网/网站教程/内容

C++指针如何用?C++指针用法总结

网站教程2024-06-10 阅读
网站建设是指使用标识语言(markup language),通过一系列设计、建模、和执行的过程将电子格式的信息通过互联网传输,最终以图形用户界面(GUI)的形式被用户所浏览。简单来说,网页设计的目的就是产生网站。简单的信息如文字,图片(GIF,JPEG,PNG)和表格,都可以通过使超文件标示语言、可扩展超文本标记语言等标示语言放置到网站页面上。 

C++程序设计重要基础就是类和对象,对象指针是很重要的一部分,包括指向对象的指针、指向对象成员的指针、this指针、指向对象的常指针、指向常对象的指针等。

C++指针怎么用?C++指针用法汇总
 

用法1、指向对象的指针

定义:对象空间的起始地址就是对象的指针。
 

说明:在建立对象时,编译系统就为每个对象分配一定的存储空间以存放其成员,不过注意,在一般情况下不同对象的数据存储单元中存放的数据成员是不相同,而不同对象的函数代码却是相同的,也就是说,它们的函数代码是共享的。这时我们可以定义一个指针变量用来存放对象的指针。
 

定义指向类对象的指针变量的一般形式是:

类名 *对象指针名;
 

如对于与个Time类对象,我们可以有:

Time t;

Time *p;

p=&t;
 

我们就可以通过对象指针访问对象和对象的成员,假如所定义的类中有数据成员hour、minute、sec,成员函数有gettime(),则

(*p).hour 即为p指向对象中的hour成员,相当于t.hour

(*p).gettime() 即为p指向对象中的成员函数gettime(),相当于t.gettime()
 

也可以用如下形式:

p->hour 和 p->gettime()和上面是等价的。
 

用法2、指向对象成员的指针

(1)指向对象数据成员的指针

在C中我们学过指向普通变量的指针变量,在C++中定义指向对象数据成员的指针变量的方法和定义指向普通变量的指针变量方法相同,其一般形式为:
 

数据类型名 *指针变量名;

如:

int *p;

p=&t.hour; //将对象t的数据成员hour的地址赋给p,p指向t.hour
 

(2)指向对象成员函数的指针

定义指向对象成员函数的指针变量和定义指向普通函数的指针变量不同。
 

在定义指向普通函数的指针变量时我们可以这样定义:

void (*p)();

p=fun;

(*p)(); //调用fun函数
 

然而编译系统要求在将函数地址赋给指针变量时必须满足三个条件:

函数参数类型及个数要匹配

函数返回值的类型要匹配

所属的类要匹配
 

显然在上面的p与类是无关的。为了满足第三条,我们可以为指针指定类,故定义指向对象成员函数的指针变量一般形式为:

数据类型(类名::*指针变量名)(参数表列);
 

可以让指针指向公用的成员函数,如:

void (Time::*p)(); //定义指向Time类对象成员函数的指针变量p

p=&Time::gettime; //把Time类的公用成员函数gettime()地址赋给指针变量p

(t.*p)(); //调用Time类对象t的成员函数gettime()
 

注意:因为成员函数不存放在对象空间中,多个同类对象共享此成员函数代码,所以在将成员函数的入口地址赋给指针变量是应写成:

指向对象成员函数的指针变量=&类名::成员函数名;

在成员函数名后面没有"()",如果写成p=&Time::gettime()是错误的。

大多数人在上网的时候,都会浏览网页提供给我们的信息。

……

相关阅读