"传统的"C++类(只是一些随机声明)可能类似于以下内容:
class Foo
{
public:
Foo();
explicit Foo(const std::string&);
~Foo();
enum FooState
{
Idle, Busy, Unknown
};
FooState GetState() const;
bool GetBar() const;
void SetBaz(int);
private:
struct FooPartialImpl;
void HelperFunction1();
void HelperFunction2();
void HelperFunction3();
FooPartialImpl* m_impl; // smart ptr
FooState m_state;
bool m_bar;
int m_baz;
};
Run Code Online (Sandbox Code Playgroud)
如果原始程序员没有整齐地组织他的"访问区域",我总是发现这种类型的访问级别规范很难并且难以遵循.
看一下Java/C#风格的相同代码片段,我们得到:
class Foo
{
public: Foo();
public: explicit Foo(const std::string&);
public: ~Foo();
public: enum FooState
{
Idle, Busy, Unknown
};
public: FooState GetState() const;
public: bool GetBar() const;
public: void SetBaz(int);
private: struct …Run Code Online (Sandbox Code Playgroud)