C++ class 初学(4)

技巧知识点

类是用户定义的类型,对象是类的实例

1.有时候,使符号常量的作用域为类很有用,例如,类声明可能使用字面值30来指定数组的长度,但类中的数据成员只描述对象的形式,并没有创建对象

a. 可以在类中声明一个枚举,使一个常量作用于类的作用域,

class tom
{
private:
	enum {months = 12};
	double mon [months];
};

传统的枚举方法中,两个枚举定义中的枚举量可能发生冲突

例如:

enum egg {small,medium,big};
enum fish {small,medium,bih};

有一种方法是在作用域内枚举

enum class egg {small,medium,big};
enum class {small,medium,bih};

也可以用struct代替class

egg ch = egg::big;
fish pd = fish::big;

这样就不会发生冲突了

注意事项:

将enum赋值于int 变量或用于比较表达式时,常规枚举变量自动转化为整型

但作用域每枚举不能隐式的转化为整型

enum egg {small, medium, big};
enum class fish {small, medium, big};

egg ch = medium;
fish pd = fish::medium;

int km = one;
int ls = rolf;//false,不发生隐式的类型转换

if(km < td)
{
	std::cout << "converted to int before comparison" << std::endl;
}
if(ls < td)
{
	std::cout << "not allowed" << std::endl;
}

特殊情况下,枚举结构的长度可发生改变

enum class : short pizza {small, medium, big};

class : 将底层类型指定为short
b.使用关键字 static

class tom
{
private:
	static const int months = 12;
	double mon [months];
};

该常量与其他静态变量存储在一起,而不是存储在对象中

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值