mirror of
https://github.com/isocpp/CppCoreGuidelines.git
synced 2025-12-17 20:54:41 +03:00
@@ -20294,10 +20294,6 @@ When declaring a class use the following order
|
||||
|
||||
Use the `public` before `protected` before `private` order.
|
||||
|
||||
Private types and functions can be placed with private data.
|
||||
|
||||
Avoid multiple blocks of declarations of one access (e.g., `public`) dispersed among blocks of declarations with different access (e.g. `private`).
|
||||
|
||||
##### Example
|
||||
|
||||
class X {
|
||||
@@ -20309,9 +20305,33 @@ Avoid multiple blocks of declarations of one access (e.g., `public`) dispersed a
|
||||
// implementation details
|
||||
};
|
||||
|
||||
##### Note
|
||||
##### Example
|
||||
|
||||
The use of macros to declare groups of members often violates any ordering rules.
|
||||
Sometimes, the default order of members conflicts with a desire to separate the public interface from implementation details.
|
||||
In such cases, private types and functions can be placed with private data.
|
||||
|
||||
class X {
|
||||
public:
|
||||
// interface
|
||||
protected:
|
||||
// unchecked function for use by derived class implementations
|
||||
private:
|
||||
// implementation details (types, functions, and data)
|
||||
};
|
||||
|
||||
##### Example, bad
|
||||
|
||||
Avoid multiple blocks of declarations of one access (e.g., `public`) dispersed among blocks of declarations with different access (e.g. `private`).
|
||||
|
||||
class X { // bad
|
||||
public:
|
||||
void f();
|
||||
public:
|
||||
int g();
|
||||
// ...
|
||||
};
|
||||
|
||||
The use of macros to declare groups of members often leads to violation of any ordering rules.
|
||||
However, macros obscures what is being expressed anyway.
|
||||
|
||||
##### Enforcement
|
||||
|
||||
Reference in New Issue
Block a user