如果一个类中有很多成员对象(别的类的对象),则必须在此构造函数中完成构造(不管怎样,编译器会在此构造函数中增加很多代码)
如果此类中有一个成员对象(别的类的对象)是需要参数的,则必须要定义构造函数,且明确调用这个成员的构造函数
class a{
4 public:
5 a(){cout <<" a " << endl;}
6 ~a(){cout << " ~a " << endl;}
7 };
8
9 a& f1(){
10 a a1;
11 return a1;
12 }
13 int main(){
14 a a2= f1();
15 cout << "end" << endl;
16 return 0;
17 }
18
结果却为
a
~a
end
~a
为什么呢