|
150 | 150 |
|
151 | 151 | \pnum |
152 | 152 | \indextext{constructor!inheritance of}% |
153 | | -\indextext{constructor!default}% |
154 | 153 | \indextext{constructor!non-trivial}% |
155 | 154 | A |
156 | | -\term{default} |
| 155 | +\defnx{default}{constructor!default} |
157 | 156 | constructor for a class |
158 | 157 | \tcode{X} |
159 | 158 | is a constructor of class |
|
236 | 235 | \defnx{non-trivial}{constructor!default!non-trivial}. |
237 | 236 |
|
238 | 237 | \pnum |
239 | | -\indextext{constructor!implicitly defined}% |
240 | 238 | A default constructor |
241 | 239 | that is defaulted and not defined as deleted |
242 | 240 | is |
243 | | -\term{implicitly defined} |
| 241 | +\defnx{implicitly defined}{constructor!implicitly defined} |
244 | 242 | when it is odr-used~(\ref{basic.def.odr}) |
245 | 243 | to create an object of its class type~(\ref{intro.object}) |
246 | 244 | or when it is explicitly defaulted after its first declaration. |
|
657 | 655 |
|
658 | 656 | \pnum |
659 | 657 | \indextext{conversion!class}% |
660 | | -\indextext{conversion!user-defined}% |
661 | 658 | \indextext{constructor, conversion by|see{conversion, user-defined}}% |
662 | 659 | \indextext{conversion function|see{conversion, user-defined}}% |
663 | 660 | \indextext{conversion!implicit}% |
664 | 661 | Type conversions of class objects can be specified by constructors and |
665 | 662 | by conversion functions. |
666 | 663 | These conversions are called |
667 | | -\term{user-defined conversions} |
| 664 | +\defnx{user-defined conversions}{conversion!user-defined} |
668 | 665 | and are used for implicit type conversions (Clause~\ref{conv}), |
669 | 666 | for initialization~(\ref{dcl.init}), |
670 | 667 | and for explicit type conversions~(\ref{expr.cast}, \ref{expr.static.cast}). |
|
735 | 732 | the types of its parameters (if any) |
736 | 733 | to the type of its class. |
737 | 734 | Such a constructor is called a |
738 | | -\indexdefn{constructor!converting}% |
739 | | -\term{converting constructor}. |
| 735 | +\defnx{converting constructor}{constructor!converting}. |
740 | 736 | \begin{example} |
741 | 737 |
|
742 | 738 | \indextext{Jessie}% |
|
1047 | 1043 | \defnx{non-trivial}{destructor!non-trivial}. |
1048 | 1044 |
|
1049 | 1045 | \pnum |
1050 | | -\indextext{destructor!implicitly defined}% |
1051 | 1046 | A destructor |
1052 | 1047 | that is defaulted and not defined as deleted |
1053 | 1048 | is |
1054 | | -\term{implicitly defined} |
| 1049 | +\defnx{implicitly defined}{destructor!implicitly defined} |
1055 | 1050 | when it is odr-used~(\ref{basic.def.odr}) |
1056 | 1051 | or when it is explicitly defaulted after its first declaration. |
1057 | 1052 |
|
|
2543 | 2538 | \end{example} |
2544 | 2539 |
|
2545 | 2540 | \pnum |
2546 | | -\indextext{constructor!copy!implicitly declared}% |
2547 | 2541 | If the class definition does not explicitly declare a copy constructor, |
2548 | | -a non-explicit one is declared \term{implicitly}. |
| 2542 | +a non-explicit one is declared \defnx{implicitly}{constructor!copy!implicitly declared}. |
2549 | 2543 | If the class definition declares a move |
2550 | 2544 | constructor or move assignment operator, the implicitly declared copy |
2551 | 2545 | constructor is defined as deleted; otherwise, it is defined as |
|
2792 | 2786 | \end{note} |
2793 | 2787 |
|
2794 | 2788 | \pnum |
2795 | | -\indextext{assignment operator!copy!implicitly declared}% |
2796 | 2789 | If the class definition does not explicitly declare a copy assignment operator, |
2797 | | -one is declared \term{implicitly}. If the class definition declares a move |
| 2790 | +one is declared \defnx{implicitly}{assignment operator!copy!implicitly declared}. |
| 2791 | +If the class definition declares a move |
2798 | 2792 | constructor or move assignment operator, the implicitly declared copy |
2799 | 2793 | assignment operator is defined as deleted; otherwise, it is defined as |
2800 | 2794 | defaulted~(\ref{dcl.fct.def}). |
|
0 commit comments