class base
{
};class derive
{
};base b;
derive d;// ok,
base b2 = d;
// error
derive d2 = b;可以把一个子类的对象赋值一个父类对象,反之则不行。
在赋值时会发生slice动作,也就是子类中特有的数据成员会被slice掉,只保存父类的部分。
{
};class derive
{
};base b;
derive d;// ok,
base b2 = d;
// error
derive d2 = b;可以把一个子类的对象赋值一个父类对象,反之则不行。
在赋值时会发生slice动作,也就是子类中特有的数据成员会被slice掉,只保存父类的部分。
VHDL语言各位大虾有没有听说过?是设计硬件的语言
我现在的工作是用C语言来翻译VHDL语言(姑且先这么说吧),就是可以使用C++语言来进行可以用硬件实现的算法的描述。VHDL语言中有一些专用的数据类型是C语言所没有的,所以第一部先在
C++语言中定义一些新的数据类型。VHDL语言中有如下描述7值逻辑的数据类型:
TYPE std_ulogic IS ( 'U', -- Uninitialized
'X', -- Forcing Unknown
'0', -- Forcing 0
'1', -- Forcing 1
'Z', -- High Impedance
'W', -- Weak Unknown
'L', -- Weak 0
'H', -- Weak 1
'-' -- Don't care
);
-------------------------------------------------------------------
-- unconstrained array of std_ulogic for use with the resolution function
-------------------------------------------------------------------
TYPE std_ulogic_vector IS ARRAY ( NATURAL RANGE <> ) OF std_ulogic;
-------------------------------------------------------------------
-- resolution function
-------------------------------------------------------------------
FUNCTION resolved ( s : std_ulogic_vector ) RETURN std_ulogic;
-------------------------------------------------------------------
-- *** industry standard logic type ***
-------------------------------------------------------------------
SUBTYPE std_logic IS resolved std_ulogic;
-------------------------------------------------------------------
-- unconstrained array of std_logic for use in declaring signal arrays
-------------------------------------------------------------------
TYPE std_logic_vector IS ARRAY ( NATURAL RANGE <>) OF std_logic;都是高级语言,看懂上面这一段VHDL语言的描述应该不困难,其resolved是一个函数。想请教各位有没有好的建议,在C++中如何定义这几个数据类型比较合适?