class base
{
};class derive
{
};base b;
derive d;// ok,
base b2 = d;
// error
derive d2 = b;可以把一个子类的对象赋值一个父类对象,反之则不行。
在赋值时会发生slice动作,也就是子类中特有的数据成员会被slice掉,只保存父类的部分。

解决方案 »

  1.   

    谢了
    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++中如何定义这几个数据类型比较合适?