分享

(1)MFC中关于CString 参数传递

 戴维图书馆 2015-07-14

MFC中关于CString 参数传递

(2007-03-15 22:21:50)

<CString 参数传递约定>
  当定义类接口时,必须确定为成员函数确定参数传递约定。现在有一些传递和返回 CString 对象的标准规则。如果遵循作为函数输入的字符串和作为函数输出的字符串中所述的规则,那么将得到正确而又有效的代码。

<作为函数输入的字符串>
  如果字符串是某个函数的输入,在大多数情况下,最好将该字符串函数参数声明为 LPCTSTR。在函数中根据需要使用构造函数和赋值运算符将其转换为 CString 对象。如果一个函数将要更改字符串的内容,那么将参数声明为非常数的 CString 引用 (CString&)。

<作为函数输出的字符串>
   通常情况下,可以从函数返回 CString 对象,因为 CString 对象遵循基元类型那样的值语义。要返回只读字符串,则使用常数 CString 引用 (const CString&)。以下示例阐释 CString 参数的使用方法和返回类型:

class CName : public CObject
{
private:
    CString m_firstName;
    char m_middleInit;
    CString m_lastName;
public:
    CName() {}
    void SetData( LPCTSTR fn, const char mi, LPCTSTR ln )
    {
        m_firstName = fn;
        m_middleInit = mi;
        m_lastName = ln;
    }
    void GetData( CString& cfn, char mi, CString& cln )
    {
        cfn = m_firstName;
        mi = m_middleInit;
        cln = m_lastName;
    }
    CString GetLastName()
    {
        return m_lastName;
    }
};
...
CName name;
CString last, first;
TCHAR middle;
name.SetData( "John", 'Q', "Public" );
ASSERT( name.GetLastName() == "Public" );
name.GetData( first, middle, last );
ASSERT( ( first == "John" ) && ( last == "Public" ) );
...

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多