|
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. |
|
727 | 725 |
|
728 | 726 | \pnum |
729 | 727 | \indextext{conversion!class}% |
730 | | -\indextext{conversion!user-defined}% |
731 | 728 | \indextext{constructor, conversion by|see{conversion, user-defined}}% |
732 | 729 | \indextext{conversion function|see{conversion, user-defined}}% |
733 | 730 | \indextext{conversion!implicit}% |
734 | 731 | Type conversions of class objects can be specified by constructors and |
735 | 732 | by conversion functions. |
736 | 733 | These conversions are called |
737 | | -\term{user-defined conversions} |
| 734 | +\defnx{user-defined conversions}{conversion!user-defined} |
738 | 735 | and are used for implicit type conversions (Clause~\ref{conv}), |
739 | 736 | for initialization~(\ref{dcl.init}), |
740 | 737 | and for explicit type conversions~(\ref{expr.cast}, \ref{expr.static.cast}). |
|
805 | 802 | the types of its parameters (if any) |
806 | 803 | to the type of its class. |
807 | 804 | Such a constructor is called a |
808 | | -\indexdefn{constructor!converting}% |
809 | | -\term{converting constructor}. |
| 805 | +\defnx{converting constructor}{constructor!converting}. |
810 | 806 | \begin{example} |
811 | 807 |
|
812 | 808 | \indextext{Jessie}% |
|
1117 | 1113 | \defnx{non-trivial}{destructor!non-trivial}. |
1118 | 1114 |
|
1119 | 1115 | \pnum |
1120 | | -\indextext{destructor!implicitly defined}% |
1121 | 1116 | A destructor |
1122 | 1117 | that is defaulted and not defined as deleted |
1123 | 1118 | is |
1124 | | -\term{implicitly defined} |
| 1119 | +\defnx{implicitly defined}{destructor!implicitly defined} |
1125 | 1120 | when it is odr-used~(\ref{basic.def.odr}) |
1126 | 1121 | or when it is explicitly defaulted after its first declaration. |
1127 | 1122 |
|
|
2613 | 2608 | \end{example} |
2614 | 2609 |
|
2615 | 2610 | \pnum |
2616 | | -\indextext{constructor!copy!implicitly declared}% |
2617 | 2611 | If the class definition does not explicitly declare a copy constructor, |
2618 | | -a non-explicit one is declared \term{implicitly}. |
| 2612 | +a non-explicit one is declared \defnx{implicitly}{constructor!copy!implicitly declared}. |
2619 | 2613 | If the class definition declares a move |
2620 | 2614 | constructor or move assignment operator, the implicitly declared copy |
2621 | 2615 | constructor is defined as deleted; otherwise, it is defined as |
|
2862 | 2856 | \end{note} |
2863 | 2857 |
|
2864 | 2858 | \pnum |
2865 | | -\indextext{assignment operator!copy!implicitly declared}% |
2866 | 2859 | If the class definition does not explicitly declare a copy assignment operator, |
2867 | | -one is declared \term{implicitly}. If the class definition declares a move |
| 2860 | +one is declared \defnx{implicitly}{assignment operator!copy!implicitly declared}. |
| 2861 | +If the class definition declares a move |
2868 | 2862 | constructor or move assignment operator, the implicitly declared copy |
2869 | 2863 | assignment operator is defined as deleted; otherwise, it is defined as |
2870 | 2864 | defaulted~(\ref{dcl.fct.def}). |
|
0 commit comments