C++笔记(22)——this指针、对象数组、类作用域

1、this指针

this指针详解参考http://c.biancheng.net/view/170.html

类的每一个成员函数都有一个this指针,该指针指向调用成员函数的对象,被作为隐藏参数传递给成员函数。在成员函数的括号后面加const限定符时,无法通过this指针修改对象的值。

使用示例:比较两个对象数据成员的大小时,程序无法直接访问对象数据,可以通过成员函数,成员函数返回值到程序中再比较。也可以设计一个成员函数,可以访问两个对象的数据,但需要第二个对象作为参数(即成员函数的参数为该类的一个对象),如下图:

2、对象数组

声明像普通数组一样,形式如下:

Stock mystuff[4];

未显式初始化对象,调用默认函数。也可以显式初始化,如下:

Stock stocks[2]={Stock("name1",22.2,10),Stock("name2",22.6,23)};

先用默认函数构造数组,然后花括号中的构造函数创建临时对象,然后将临时对象的内容复制到相应的元素中。

3、类作用域

类中成员名(包括数据和函数)的作用域为整个类,即只在类内知道,类外不可知,所以不同的类中可以使用相同的成员名,调用公有部分时通过对象。

(1)作用域为类的常量

在类的声明中不可const int m=1;这样直接定义常量,因为类在声明时没有创建对象,还没有分配存储空间。处理方法有下面两种:

①使用枚举,声明时不会创建类数据成员,且所有对象中都不包含枚举。

class Bakery

{

private:

enum {m=8};

double cost[m];

...

}

②使用关键字static,该常量将和其他静态存储变量存在一起,而不存储在对象中。

class Bakery

{

private:

static const int m=8;

double cost[m];

...

}

(2)作用域内枚举

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值