zoukankan      html  css  js  c++  java
  • github上的每日学习 13

    一、 联合体

    C语言没有学习到的。

    Union 联合体名称{
    公有成员
    Protected:
    保护型成员
    Private:
    私有成员
    };
    

    这些成员不是同时存在的,意思是任何两个成员不会同时有效。

    例子:

    Union Mark{//成绩的联合体
    	Char grade;//等级制
    	Bool pass;//是否通过
    	Int percent;//百分制
    }
    

    首先,这个联合体取成员中占字节最大的那个成员为自己的字节数,如此例子中,这个联合体的字节数为四。
    只能存入grade pass percent 这三个成员中的一个。
    如果已经存入pass又要存有percent时,pass这个成员会消失。
    也有无名联合体。

    Union{
    Int i;
    Float f;
    };
    

    二、 联合体练习

    #include<iostream>
    #include<string>
    using namespace  std;
    class ExamInfo {
    private :
    	string name;//课程名称
    	enum{GRADE,PASS,PERCENT} mode;//计分方式
    	union {
    		char grade;//等级制的成绩
    		bool pass;//只记是否通过课程的成绩
    		int percent;//百分制的成绩。
    	};
    public:
    	ExamInfo(string name,char grade)
    		:name(name),mode(GRADE),grade(grade){}
    	ExamInfo(string name ,bool pass)
    		:name(name),mode(PASS),pass(pass){}
    	ExamInfo(string name, int percent)
    		:name(name), mode(PERCENT), percent(percent){}
    	void show();
    
    };
    void ExamInfo::show()
    {
    	cout << name << ":";
    	switch (mode) {
    	case GRADE:cout << grade; break;
    	case PASS:cout << (pass ? "pass" : "fail"); break;
    	case PERCENT:cout << percent; break;
    	}
    	cout << endl;
    }
    
    
    int main()
    {
    	ExamInfo course1("English", 'B');
    	ExamInfo course2("Calculus", true);
    	ExamInfo course3("C++ Programming", 85);
    	course1.show();
    	course2.show();
    	course3.show();
    	return 0;
    }
    

    三、 枚举类

    这和C语言中不一样。

    语法形式

    enum class 枚举类型名:底层类型{枚举值列表//int类型};

    具体练习:

    enum class type{General=1,Light,Heavy}; 
    enum class type:char {General,Light,Heavy};
    ```
    ####它的优势:
    ####1、	强作用域;
    ####2、	转换限制;
    ####3、	可以指定底层类型;
    
    ![](https://img2018.cnblogs.com/blog/1925081/202002/1925081-20200209194839800-2080661157.png)
  • 相关阅读:
    并发和多线程(二)--启动和中断线程(Interrupt)的正确姿势
    并发和多线程(一)--创建线程的方式
    MySQL系列(十二)--如何设计一个关系型数据库(基本思路)
    Elasticsearch系列(二)--query、filter、aggregations
    Spark-python入门
    python中的Turtle模块
    pytorch显示网络结构
    风格迁移(2)-Fast Style Transfer
    风格迁移(1)-格拉姆矩阵
    使用GAN生成图片
  • 原文地址:https://www.cnblogs.com/zouzou-1/p/12288445.html
Copyright © 2011-2022 走看看