2014年7月13日 星期日

C++ API設計-減少類別偶合

由於Scott Meyers 建議,只要在允許的情況下,應該選擇宣告函式為非成員非朋友(non-friend)函式,而不是成員函式,如下

// myobject.h
class MyObject
{
public:
 void PrintName() const;
 std:string GetName() const;
private:
 std::string mName;
}

根據建議你應使用以下方式:

// myobject.h
class MyObject
{
public:
 std:string GetName() const;
private:
 std::string mName;
}

void PrintName(const MyObject &obj) const;

甚至也可以宣告在不同的命令空間,如下

// myobjecthelper.h
namespace MyObjectHelper
{
 void PrintName(const MyObject &obj);
}


標籤: ,