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