对象数组

Stock mystuff[4];

当程序创建违背显式初始化的对象时,总是调用默认构造函数。(要么没有显式的定义任何构造函数,要么定义了一个显示默认构造函数)。

如果类包含多个构造函数,可以对不同的元素使用不同的构造函数。

初始化对象数组的方法是:首先使用默认构造函数创建数组元素,然后花括号中的构造函数将创建临时对象,然后将临时对象的内容复制到相应的元素中。因此,要创建类对象数组,则这个类必须有默认构造函数。


修改类的私有部分和实现文件属于实现更变,修改类的公有部分属于接口变更。实现变更改变了类的内部工作原理,接口变更改变了使用类的人可用的编码方式。


在类中定义的名称(如类数据成员和类成员函数名)的作用域都为整个类,作用域为整个类的名称只在该类中是已知的,在类外是不可知的。因此,可以在不同类中使用相同的类成员名而不会引起冲突。

类作用域意味着不能从外部直接访问类的成员,公有成员函数也是如此。也就是说,要调用公有成员函数,必须通过对象。


作用域为整个类的常量

第一种方式是在类中声明一个枚举。在类声明中声明枚举的作用域为整个类,因此可以用枚举为整形常量提供作用域为整个类的符号名称。用这种方式声明枚举并不会创建类数据成员。也就是说,所有对象中都不包含枚举。Len只是一个符号名称,在作用域为整个类的代码中遇到它时,编译器将用30来替代它。

class Stock
{
private:
	enum{Len=30};
	char company[Len];
	...
}

C++ 引入了另一种在类中定义常量的方式。这将创建一个名为Len的常量,该常量与其他静态量存储在一起,而不是存储在对象中,因此,只有一个Len常量,它被所有Stock对象共享。只能使用这种技术声明值为整形或枚举类型的静态常量,而不能存储double常量。

class Stock
{
private:
	static const int Len=30;
	char company[Len];
	...
}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值