c_cpp 在C ++中使用内部枚举和联合的状态对象的例子

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了c_cpp 在C ++中使用内部枚举和联合的状态对象的例子相关的知识,希望对你有一定的参考价值。

#include <iostream>

struct RadonObject
{
	enum Type
	{
		// data types
		Int,
		Char,
		Bool,
		List,
		// directives
		RxAdd,
		RxSub
	};
	Type state;

	union
	{
		RadonObject* _list;
		int _int;
		char _char;
		bool _bool;
	};

	RadonObject* next;
	

	//constructors for chained construction
	RadonObject(int i, RadonObject* next = nullptr): state(RadonObject::Int), _int(i), next(next) {}
	
	RadonObject(char ch, RadonObject* next = nullptr): state(RadonObject::Char), _char(ch), next(next) {}
	
	RadonObject(bool b, RadonObject* next = nullptr): state(RadonObject::Bool), _bool(b), next(next) {}
	
	RadonObject(RadonObject* lst, RadonObject* next = nullptr): state(RadonObject::List), _list(lst), next(next) {}

	inline ~RadonObject()
	{
		if(state == RadonObject::List) delete _list;
		delete next;
	}
};

int main() {
  std::cout << sizeof(RadonObject) << "\n";
  RadonObject::Type g = RadonObject::RxAdd;
}

以上是关于c_cpp 在C ++中使用内部枚举和联合的状态对象的例子的主要内容,如果未能解决你的问题,请参考以下文章

RTL基本知识:使用枚举类型表示状态机进入死循环

再说C模块的编写

各种内部类和枚举类的使用

C语言程序设计对文件的输入和输出

线程的生命周期和状态概述

c_cpp 在C ++中使用运算符和链方法的示例