[ Web Proxy ]
URL:
Viewing: https://ru.cppreference.com/cpp/language/default_constructor [Back]  [Original]

cppreference.com
cppreference.com

cppreference.com

, .

- (- ()); (1)
- (- ()) - (2)
- () = default; (3) ( C++11)
- (- ()) = delete; (4) ( C++11)
- ::- (- ()) - (5)
- ::- () = default; (6) ( C++11)
- ,
- -, ( ) ( C++11)
-

1) .
2-4) .
3) .
4) .
5,6) ( (1)).
6) .

.

, , inline public .

, , , , default.

( C++11)

( ) , ( C++17) noexcept ( C++17).

( C++11) ( C++11), ( ) , odr ( C++11), , . . , , , .

constexpr ( C++23)constexpr ( C++23), constexpr.

, , , default.

( C++11)

( C++11) T ( C++11) ( C++11), :

  • T (, , ).
  • T , , , , (, , ).
  • T ( C++11).
  • T const- (, , ) ( C++11).
  • T M (, , ),
  • M , ( C++11) ,
  • :
  • .
  • , .
( C++11)
  • , M
  • ,
  • , , .

, delete.

( C++11)

T (.. ), :

  • (.. ).
  • T -.
  • T .
( C++11)
  • T .
  • ( ) .

, . , C ( POD), .

, , .

( C++11)

, .

( C++11)
( C++20)

,

  • , , ,
  • , .
( C++20)

, .

struct A
{
    int x;
    A(int x = 1): x(x) {} //     
};
 
struct B: A
{
    // B::B() i ,  A::A()
};
 
struct C
{
    A a;
    // C::C()  ,  A::A()
};
 
struct D: A
{
    D(int y): A(y) {}
    // D::D()  ,     
};
 
struct E: A
{
    E(int y): A(y) {}
    E() = default; //    ,  A::A()
};
 
struct F
{
    int& ref; //  
    const int c; //  
    // F::F()    
};

//     ( ,
//     )    
//  

struct G
{
    G(const G&) {}
    // G::G()    
};

struct H
{
    H(const H&) = delete;
    // H::H()    
};

struct I
{
    I(const I&) = default;
    // I::I()    
};

int main()
{
    A a;
    B b;
    C c;
//  D d; //  
    E e;
//  F f; //  
//  G g; //  
//  H h; //  
//  I i; //  
}

C++:

CWG 1353 C++98 , ,
CWG 2084 C++11 ,



Web Proxy Viewer  |  New URL  |  Original Page