将内联函数从标头移动到源 我对C++是新的,所以我提前为我的问题的平凡性道歉。< /P>

将内联函数从标头移动到源 我对C++是新的,所以我提前为我的问题的平凡性道歉。< /P>,c++,inline,C++,Inline,我被要求将以下内联函数从头文件移动到源文件。然而,我正在努力在源文件中获得正确的语法。 这是头文件中的内联函数: class G1FRViewOption { public: enum ViewType {partyView, contraView, unknown} ; G1FRViewOption() : m_view (nullString ) , m_viewType (unknown )

我被要求将以下内联函数从头文件移动到源文件。然而,我正在努力在源文件中获得正确的语法。 这是头文件中的内联函数:

class G1FRViewOption
 {
    public:
        enum ViewType {partyView, contraView, unknown} ;
        G1FRViewOption() : m_view     (nullString )
                     , m_viewType (unknown    )
                     , m_isValid  (false      ) {initialise();} 
        G1FRViewOption(const RWCString view) : m_view     (view    )
                                         , m_viewType (unknown )
                                         , m_isValid  (false   ) {initialise();}
        void initialise()
        {
            static RWCString views[] = {"party","contra"} ;
            for (int vt=counterpartyView; vt<unknown; vt++)
                if (m_view.compareTo(views[vt], RWCString::ignoreCase)==0)
                {
                    m_viewType  = (ViewType) vt ;
                    m_isValid   = true          ;
                    break ;
                }
        } 
        RWCString getErrorMessage()
        {
            return "Invalid " + getFieldLabel() + " given. Valid values are party, contra.";
        }
        G1FRViewOption & operator = (const G1FRViewOption & other)
        {
            this->m_view     = other.m_view     ;
            this->m_viewType = other.m_viewType ;
            this->m_isValid  = other.m_isValid  ;
            return *this ;
        } 
              RWBoolean   is        (ViewType viewType) const {return viewType == m_viewType ;} 
              RWBoolean   isValid   () const {return m_isValid ;} 
        const RWCString & toString  ()       {return m_view    ;} 
        static const RWCString       & getFieldLabel         () { static RWCString value = "View"         ; return value ; } 
        static const FieldDefinition & getFieldDefinition    () { static const FieldDefinition fd (getFieldLabel(), 13) ; return fd ; } 
    private:
        RWCString m_view     ;
        ViewType  m_viewType ;
        RWBoolean m_isValid  ;} ;
类别G1FRVIEW选项
{
公众:
枚举视图类型{partyView,contraView,unknown};
G1FRViewOption():m_视图(空字符串)
,m_视图类型(未知)
,m_isValid(false){initialise();}
G1FRVIEW选项(常量RWCString视图):m_视图(视图)
,m_视图类型(未知)
,m_isValid(false){initialise();}
无效初始化()
{
静态RWCString视图[]={“party”,“contra”};
对于(int vt=对方视图;vtm_视图=其他.m_视图;
this->m_viewType=other.m_viewType;
this->m_isValid=other.m_isValid;
归还*这个;
} 
RWBoolean is(ViewType ViewType)const{return ViewType==m_ViewType;}
RWBoolean isValid()常量{return m_isValid;}
const RWCString&toString(){return m_view;}
static const RWCString&getFieldLabel(){static RWCString value=“View”返回值;}
static const FieldDefinition&getFieldDefinition(){static const FieldDefinition fd(getFieldLabel(),13);返回fd;}
私人:
RWCString m_视图;
ViewType m_ViewType;
rwm_是有效的;};
如蒙协助,将不胜感激

非常感谢


C++新手!

首先创建相应的cpp文件(如果它不存在),然后将函数体逐个复制到该文件中,并在它们的名称前面加上类名和两个冒号,从而将函数从标题移到cpp文件中,如下所示:

void initialise()
{
    static RWCString views[] = {"party","contra"} ;
    for (int vt=counterpartyView; vt<unknown; vt++)
        if (m_view.compareTo(views[vt], RWCString::ignoreCase)==0)
        {
            m_viewType  = (ViewType) vt ;
            m_isValid   = true          ;
            break ;
        }
}
在标题中,以及

void G1FRViewOption::initialise()
{
    static RWCString views[] = {"party","contra"} ;
    for (int vt=counterpartyView; vt<unknown; vt++)
        if (m_view.compareTo(views[vt], RWCString::ignoreCase)==0)
        {
            m_viewType  = (ViewType) vt ;
            m_isValid   = true          ;
            break ;
        }
}
void G1FRViewOption::initialise()
{
静态RWCString视图[]={“party”,“contra”};

对于(int vt=counterpartyView;vt,您可以先创建相应的cpp文件(如果不存在),然后将函数体逐个复制到该文件中,并在其名称前面加上类名称和两个冒号,从而将函数从标题移到cpp文件中,如下所示:

void initialise()
{
    static RWCString views[] = {"party","contra"} ;
    for (int vt=counterpartyView; vt<unknown; vt++)
        if (m_view.compareTo(views[vt], RWCString::ignoreCase)==0)
        {
            m_viewType  = (ViewType) vt ;
            m_isValid   = true          ;
            break ;
        }
}
在标题中,以及

void G1FRViewOption::initialise()
{
    static RWCString views[] = {"party","contra"} ;
    for (int vt=counterpartyView; vt<unknown; vt++)
        if (m_view.compareTo(views[vt], RWCString::ignoreCase)==0)
        {
            m_viewType  = (ViewType) vt ;
            m_isValid   = true          ;
            break ;
        }
}
void G1FRViewOption::initialise()
{
静态RWCString视图[]={“party”,“contra”};

对于(int vt=counterpartyView;vt这不是一个函数。这是一个完整的类。问题是什么,这不是一个函数。对于这种基本问题,请用一个简单的示例替换代码。这避免了发布代码和期望人们阅读。你问了一个非常简单的问题,却发布了一整堆代码。你可以演示pro五行示例的问题。这不是一个函数。这是一个完整的类。问题是什么,这不是一个函数。对于这种基本问题,请用一个简单的示例替换您的代码。这避免了发布代码和期望人们阅读。您问了一个非常简单的问题,但发布了一大堆代码。您可以演示p用一个五行的例子来回答这个问题。