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 ++中使用运算符和链方法的示例