課上臨時想到的ios
就是相似第41行的賦值語句,會生成一個臨時變量(其它代碼不用管)ide
通過實驗發現函數
這個臨時變量的生命週期只限於這個語句,語句結束後就會調用析構函數優化
並且若是寫成spa
則不會看見這個臨時變量的生成,估計被編譯器給優化掉了生命週期
- #include <iostream>
- using namespace std;
- namespace kk
- {
- int count=1;
- class a
- {
- public:
- int counts;
- a();
- ~a();
- a(const a&);
- };
- }
- kk::a::a()
- {
- counts=kk::count;
- cout<<"creat the"<<counts<<"th instance"<<"from creat"<<endl;
- kk::count++;
- }
- kk::a::a(const a& b)
- {
- counts=kk::count;
- cout<<"creat the"<<counts<<"th instance"<<" from copy"<<endl;
- kk::count++;
- }
- kk::a::~a()
- {
- cout<<"delete the"<<counts<<"th instance"<<endl;
- }
- void kkk()
- { kk::a b;
- cout<<b.counts<<endl;
- kk::a c(b);
- cout<<c.counts<<endl;
- kk::a d;
- cout<<d.counts<<endl;
- d=kk::a(b);
- d.counts=3;
- }
- int main()
- {
- kkk();
- char sss;
- cin>>sss;
- }