MiniOB 1
MiniOB is one mini database, helping developers to learn how database works.
载入中...
搜索中...
未找到
| Public 成员函数 | 静态 Public 成员函数 | Private 成员函数 | Private 属性 | 友元 | 所有成员列表
Value类 参考final

属性的值 更多...

#include <value.h>

union  Val
 

Public 成员函数

 Value (AttrType attr_type, char *data, int length=4)
 
 Value (int val)
 
 Value (float val)
 
 Value (bool val)
 
 Value (const char *s, int len=0)
 
 Value (const Value &other)
 
 Value (Value &&other)
 
Valueoperator= (const Value &other)
 
Valueoperator= (Value &&other)
 
void reset ()
 
void set_type (AttrType type)
 
void set_data (char *data, int length)
 
void set_data (const char *data, int length)
 
void set_value (const Value &value)
 
void set_boolean (bool val)
 
string to_string () const
 
int compare (const Value &other) const
 
const char * data () const
 
int length () const
 
AttrType attr_type () const
 
int get_int () const
 
float get_float () const
 
string get_string () const
 
bool get_boolean () const
 

静态 Public 成员函数

static RC add (const Value &left, const Value &right, Value &result)
 
static RC subtract (const Value &left, const Value &right, Value &result)
 
static RC multiply (const Value &left, const Value &right, Value &result)
 
static RC divide (const Value &left, const Value &right, Value &result)
 
static RC negative (const Value &value, Value &result)
 
static RC cast_to (const Value &value, AttrType to_type, Value &result)
 

Private 成员函数

void set_int (int val)
 
void set_float (float val)
 
void set_string (const char *s, int len=0)
 
void set_string_from_other (const Value &other)
 

Private 属性

AttrType attr_type_ = AttrType::UNDEFINED
 
int length_ = 0
 
union Value::Val value_ = {.int_value_ = 0}
 
bool own_data_ = false
 是否申请并占有内存, 目前对于 CHARS 类型 own_data_ 为true, 其余类型 own_data_ 为false
 

友元

class DataType
 
class IntegerType
 
class FloatType
 
class BooleanType
 
class CharType
 
class VectorType
 

详细描述

属性的值

与DataType,就是数据类型,配套完成各种算术运算、比较、类型转换等操作。这里同时记录了数据的值与类型。 当需要对值做运算时,建议使用类似 Value::add 的操作而不是 DataType::add。在进行运算前,应该设置好结果的类型, 比如进行两个INT类型的除法运算时,结果类型应该设置为FLOAT。

成员函数说明

◆ get_int()

int Value::get_int ( ) const

获取对应的值 如果当前的类型与期望获取的类型不符,就会执行转换操作


该类的文档由以下文件生成: