2014 1016
1、Http和Https的不同
https是SSSL加密的
2、宏与内联函数的不同
不同点:宏是在预编译期间进行字符串的替换操作的,而内联函数是在编译期间在函数被调用的地方插入函数的实现代码
3、
#include <iostream> using namespace std; class A{ public: A(){cout<<"A"<<endl;} A(A &a){cout<<"A_copy"<<endl;} ~A(){cout<<"~A"<<endl;} }; class B{ public: B(A &AA):_AA(AA){cout<<"B_copy"<<endl;}//1 B(){cout<<"B"<<endl;} ~B(){cout<<"~B"<<endl;} private: A _AA; }; int main(){ A AA; B BB(AA); return 0; }
第一行是因为:A AA构造了一个对象
第二行是因为构造函数的初始化成员列表调用的是A的拷贝构造函数(1处的_AA(AA))
第三行是因为B的拷贝构造函数
第四行析构的是BB
第五行析构的是BB中的_AA成员
第六行析构的是AA对象
class B{ public: B(){cout<<"B"<<endl;} ~B(){cout<<"~B"<<endl;} private: A _AA; }; int main(){ B BB; return 0; }
**************************************************************************************
为什么以下程序调用B(A AA)后调用的是AA的拷贝构造
#include <iostream> using namespace std; class A{ public: A(){cout<<"A"<<endl;} A(A &a){cout<<"A_copy"<<endl;} ~A(){cout<<"~A"<<endl;} }; class B{ public: B(A AA){cout<<"B_copy"<<endl;}//1 B(){cout<<"B"<<endl;} ~B(){cout<<"~B"<<endl;} //private: //A _AA; }; int main(){ A AA; B BB(AA); return 0; }