Class declaration
Aus cppreference.com
<metanoindex/>
Syntax
class identifier { class_body } object_list ;
|
(1) | ||||||||
class identifier : ancestor_list { class_body } object_list ;
|
(2) | ||||||||
class identifier ;
|
(3) | ||||||||
class identifier final opt_ancestors_and_body
|
(4) | (seit C++11) | |||||||
Class Body
A list of member and friend declarations and access specifiers:
Ancestor List
A list of classes that have already bee fully defined optionally prefixed with an access specifier
Object List
An optional list of instances of the previously defined class
Erklärung
- Defines a class and its member
- Defines a class inheriting other classes
- Forwards declares a class
- Defines a class that cannot be derived from ( see final )
If friend or member functions have their body defined inside the class body, they are implicitly inlined
Notes
(seit C++11) A default value can be assigned to data members inside the class body (ie: not necessarily in a constructor)
Siehe auch
Beispiel
class C;
class D : public B // B needs to be defined
{
private:
C *ptr_c; // a pointer/reference to C can be used as C has been forward declared
double x = 12.3; // C++11 inline data member initialization
static const int sci = 1; // this is valid in C++98 as well
public:
typedef B parent_type;
// inline function
virtual parent_type foo() const
{
return B();
}
// non-inline function declaration. needs to be defined externally
void bar();
} D_obj; // An object of type D is defined
// definition of a class method outside the class
void D::bar()
{
//...
}
