首页 > 其他分享 >类与对象3

类与对象3

时间:2023-04-24 11:56:59浏览次数:33  
标签:cout show 对象 ExamInfo grade mode name

#include<string>
#include<iostream>
using namespace std;
class ExamInfo{
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(PERCENTAGE),percent(percent){}
void show();
private:
string name;
enum {
GRADE,
PASS,
PERCNETANGE
}mode;
union {
char grade;
bool pass;
int percent;
};
};
void ExamInfo::show(){
cout<<name<<":";
switch (mode){
case GRADE:cout<<grade;
break;
case PASS:
cout<<(pass ? "PASS":"FAIL");
break;
case PERCENTAGE:
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;
}

标签:cout,show,对象,ExamInfo,grade,mode,name
From: https://www.cnblogs.com/yuanxinglan/p/17348991.html

相关文章

  • 类与对象2
    #include<iostream>usingnamespacestd;enumGameResult{WIN,LOSE,TIE,CANCEL};intmain(){ GameResultresult; enumGameResultomit=CANCEL; for(intcount=WIN;count<=CANCEL;count++){ result=GameResult(count); if(result==omit) cout<<"Th......
  • 面向对象
    面向过程的缺点:随着规模增大,业务复杂度提高,基于一个个函数编写,会变得非常杂乱,后续维护几乎无法完成,况且,任务本身也不见得能完成。面向对象:比如要完成两个数相加减的运算任务,我们设计一个计算器对象(类),把2个加减任务封装成2个方法,在主程序中,通过对象去完成这个运算任务。面向对象......
  • java调用GDAL,接口运行一次出现A fatal error has been detected by the Java Runtime
    参考文章:https://www.jianshu.com/p/4bffe29e3a02问题描述:通过调用GDAL写的SpringBoot接口,第一次访问成功,第二次报错,显示报错的位置为gdal库。尝试了很多方法https://www.cnblogs.com/jokingremarks/p/15132599.html#!comments仍然不成功,感觉应该是第二次运行接口时,进行垃圾回......
  • 如何创建不可变的Map对象
    在Java编程中,创建不可变的Map对象是一项非常重要的任务,这不仅有助于保证程序的线程安全性和安全性,同时还能避免意外的状态变化。本篇博客将详细介绍如何在Java程序中创建不可变的Map对象,以及Java8之前和之后的版本间的差异。什么是不可变类或对象?不可变的类或对象是指在创建后......
  • 【C++入门】类和对象(一) 详解(class、struct、类的定义、类的实例化、类的封装、对象
    1.面向过程和面向对象初步认识面向过程更加关注解决问题的过程和步骤。而面向对象关注的是对象,对一个事情拆分成不同的对象,靠对象之间的交互实现。例如:外卖系统面向过程:上架→点餐→派单→送餐注重过程步骤面向对象:(更加贴近现实之间的业务逻辑交互)骑手→商家←用户注重对象和对象......
  • 15面向对象特性
    面向对象特性封装在程序设计中,封装(Encapsulation)是对具体对象的一种抽象,即将某些部分隐藏起来,在程序外部看不到,其含义是其他程序无法调用。要了解封装,离不开“私有化”,就是将类或者是函数中的某些属性限制在某个区域之内,外部无法调用。封装的作用:1、保护隐私(把不想别人知道......
  • java程序new对象后加大括号{},匿名类,闭包,lamda表达式相关
     这种在源码中经常出现,所以我拿出来说一说步骤1 new一个匿名子类对象    我姑且叫这种情况为“匿名子类”吧,就是有这样的情况,你new一个类的时候直接加一对花括号,实际上已经创建了它的一个匿名子类。老实说,我第一次见到这种写法也是懵逼的。比如我有一个父类publicc......
  • javamock生成对象
    `importjava.lang.reflect.Field;importjava.lang.reflect.ParameterizedType;importjava.util.ArrayList;importjava.util.Date;importjava.util.HashMap;importjava.util.List;importjava.util.Map;importjava.util.Random;publicclassMock{privatesta......
  • java基础-面向对象-多态(四)
    某一个事务不同的体现形态例如:人:男人、女人动物:猫、狗猫x=new猫();动物x=new猫();1、多态的体现父类的引用指向了自己的子类对象父类的引用也可以接受自己的子类对象2、多态的前提必须是类与类之间有关系,要么继承、要么实现,通常还有一个前提,存在覆盖3、多态的好处多态的出现大大......
  • java基础-面向对象-继承(三)
    This  Super  继承的时候出现的两个关键字,final(不让复写方法)  abstract (必须复写方法)interface(修饰类)  implement继承好处:提高代码的复用性, 让类与类之间产生了关系,提供了另一个特征多态的前提父类的由来,其实是由多个类不断向上抽取共性内容而来的java来说,继承是单......