C++11?械?Defaulted??Deleted????
???????????? ???????[ 2016/7/21 10:39:54 ] ????????.NET ???????????
????????????? C++11 ????????????????defaulted ?? deleted ?????????? defaulted ????????????????????????????????????澹�????????????????效?????????????????????煤???????????????? deleted ?????? ???????????????????????些????????????????????????????????????????????????????????????? defaulted ?? deleted ???????梅????娲�??
????Defaulted ????
????????????
????C++ ????????????????????????????????????????????????????????????????????????????????些????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????纾�
?????宓� 1
????class X{
????private:
????int a;
????};
????X x;
???????宓� 1 ?校??????????卸????? X ??????????????????????? X ????? x ??????????????? X ????????????????????????????????? X ?????????????????????????????????????胁???????????????????澹�?? X::X????{ }??????????????????????????????????澹�?????????????????????? X ????? x???宓� 1 ?????????????
???????????????????? X ??????????????????????????卸?????????????????宓� 2 ?????????????
?????宓� 2
????class X{
????public:
????X(int i){
????a = i;
????}
????private:
????int a;
????};
????X x; // ???? ?? ???????? X::X() ??????
?????宓� 2 ????????????????? X ??????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????纾�
?????宓� 3
????class X{
????public:
????X(){}; // ???????????????
????X(int i){
????a = i;
????}
????private:
????int a;
????};
????X x; // ????????????? X::X() ????
???????宓� 3 ???????????????????????????????????????????????????写????????????????????????????????写??????????????????效??????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????写???????????????????????????????写????????????????????效?????????????????????????????
????Defaulted ?????????
????????????宓� 3 ?????????????1. ???????????????????2. ???????????????????????????????????????效???C++11 ???????????????????defaulted ????????????????????????????“=default;”??????煤???????? defaulted ???????????????????????? defaulted ???????????????濉�???纾�
?????宓� 4
????class X{
????public:
????X()= default;
????X(int i){
????a = i;
????}
????private:
????int a;
????};
????X x;
???????宓� 4 ?校???????????????????????? X::X(){}???煤?????????????????????????????????????效???
????Defaulted ??????????
????Defaulted ?????? C++11 ?????????????????????defaulted ?????????????? 1 ?????
????Defaulted ???????梅??????
????Defaulted ?????????????????????????????????????????????????????????纾�
?????宓� 5
????class X {
????public:
????int f() = default; // ???? ?? ???? f() ???? X ????????????
????X(int) = default; // ???? ?? ?????? X(int?? int) ?? X ????????????
????X(int = 1) = default; // ???? ?? ???????? X(int=1) ??????????
????};
????Defaulted ?????????????????inline?????澹�?????????????out-of-line?????濉�???纾�
?????宓� 6
????class X{
????public:
????X() = default; //Inline defaulted ????????
????X(const X&);
????X& operator = (const X&);
????~X() = default; //Inline defaulted ????????
????};
????X::X(const X&) = default; //Out-of-line defaulted ??????????
????X& X::operator = (const X&) = default; //Out-of-line defaulted
????// ?????????????
?????? C++ ???????????校??????????????? X ?????????????????????????? X ??????????????????? X ???????????????????????????????????????????????????????????????????????胁???????????????????澹�?? X::~X????{ }?????纾�
?????宓� 7
????class X {
????private:
????int x;
????};
????class Y: public X {
????private:
????int y;
????};
????int main(){
????X* x = new Y;
????delete x;
????}
???????宓� 7 ?校?????????????? X ???????? Y ?????????????????????????? delete ??????? x ?????????????????????????????????????????????????? X ???????????????????????????????? x ??????????????械??????????? int ???????? x????
???????????未?????????泄????????????? delete ?????????????????????? x ???????????????????????????????????? Y ????????????????????????????????????? int ???????? y??
??????

???路???
??????????????????
2023/3/23 14:23:39???写?貌??????????
2023/3/22 16:17:39????????????????????些??
2022/6/14 16:14:27??????????????????????????
2021/10/18 15:37:44???????????????
2021/9/17 15:19:29???路???????路
2021/9/14 15:42:25?????????????
2021/5/28 17:25:47??????APP??????????
2021/5/8 17:01:11