????????????У?C??????C++????????????????web??????????????????????????C++98 ?У??????????????????Щ???????C++11??????Щ???????
????C++98???????????ж??????????????????????????Щ???????????????????????????????????????????£?????????????????????????????????????С?
????????C++98?е?????????????C++11???????У??????????????е????????????????????????????????????????????????????????????????????????????????????????Щ?????????????????????????????????????????????????????????????????????????????????????С???????????????C++11????????????÷?????
????1???????????????
?????????????C++11??????????????????????????????????????????????????
????????????? ??delegatingctor1.cpp)
class A{
public:
// A(int i)? A()??????????
A(): A(0){}
// A(int i?? int j)? A(int i)??????????
A(int i): A(i?? 0){}
// ????????? A()->A(int i)->A(int i?? int j)
A(int i?? int j) {
num1=i;
num2=j;
average=(num1+num2)/2;
}
private:
int num1;
int num2;
int average;
};
??????????????????У????????????????? A()???????б???????????? A(0)?? ?????????????????? ????? A??int i)? A()????????????? A()? A(int i)????????????????A(int i?? int j)? A(int i)????????????? A(int i) ? A(int i?? int j)?????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????C++11?????????????????????????????????????????????????????????????????????????????????????????????????????????
??????C++???????????У??????????????????????????????????????????????????????????????????????????????????
????????????? ??delegatingctor2.cpp)
#include <iostream>
using namespace std;
class A{
public:
A(): A(0){ cout << "In A()" << endl;}
A(int i): A(i?? 0){cout << "In A(int i)" << endl;}
A(int i?? int j){
num1=i;
num2=j;
average=(num1+num2)/2;
cout << "In A(int i?? int j)" << endl;
}
private:
int num1;
int num2;
int average;
};
int main(){
A a;
return 0;
}
?????????????????
????In A(int i?? int j)
????In A(int i)
????In A()