cpp primer plus笔记08-抽象和类

  1. CPP的类可以有很多种方式进行初始化,大致可以分为一下几种:
    1. 通过构造函数初始化。
      Bozo(const char* name,const char* name);
      Bozo bozetta = Boze("Bozetta", "Biggens");
      Bozo fufu("Fufu", "O'Dweeb");
      Bozo *pc = new Bozo("Popo", "Le Peu");
      //上面的这种方式创建的类,需要在程序结束的时候delete掉。
      
    2. 通过列表初始化。
    	Bozo bozetta = {"Bozetta", "Biggens"};
    	Bozo fufu{"Fufu", "O'Dweeb"};
    	Bozo *pc = new Bozo{"Popo", "Le Peu"};
    
    1. 如果构造函数只有一个参数,可以进行下面方式的初始化。
    	Bozo dribble = Bozo(40);
    	Bozo roon(66);
    	Bozo tubby = 32;
    
  2. 针对于一些类中相关数据需要使用的但是作用域为类的常量可以使用一下两种方式来定义:
    1. 通过静态常变量定义,(注:只有整形才能在类中被初始化)
      class Bakery
      {
      	private:
      		static const int Months = 12;
      		double costs[Months];
      	...
      }
      
    2. 通过枚举类型定义
    	class Bakery
    	{
    		private:
    			enum { Months = 12; };
    			double costs[Months];
    	}	
    
  3. 为解决相同变量名在不同枚举类型参数错误,CPP11引入新的枚举,但是该枚举类型不能相互隐式为其他类型,只能显示转换,枚举类型的基础类型可以为各种整形和字符串类型,但是不能是其他类型。
    #include<iostream>
    enum egg
    {
    	kSmall,
    	kMedium,
    	kLarge,
    	kJumbo
    };
    enum class t_shirt
    {
    	kSmall,
    	kMedium,
    	kLarge,
    	kJumbo
    };
    enum class Box
    {
    	kSmall,
    	kMedium,
    	kLarge,
    	kJumbo
    };
    enum class VectorRotation : long int
    { VectorX, VectorY, VectorZ };
    enum class Vector : char
    { VectorX, VectorY, VectorZ };
    int main()
    {
    	t_shirt rolf = t_shirt::kMedium;
    	Box cube = Box::kLarge;
    	egg one = kMedium;
    	int ring = int(rolf);
    	int king = one;
    	if (king < kJumbo) std::cout << "Less" << std::endl;
    	if (ring == int(rolf))
    	{
    		std::cout << "Yes" << std::endl;
    	}
    	return 0;
    }
    
    Less
    Yes
    
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值