[問題] C++從函數返回一個區域物件時constructor的被呼叫時機
對於下列的程式
1 //宣告class C
2 class C{
3 ...
4 };
5 //f函數
6 C f(){
7 C c;
8 return c;
9 }
10
11 int main(int argc, char **argv){
12 C c1=f();
13 return 0;
14 }
請問一下
第8行的return敘述會導致新的C物件額外產生嗎?因此C的constructor再被再呼叫?
第7行宣告的c它的 destructor會何時被呼叫(a.)離開f()時 (b.)還是離開main時
感謝回覆
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 118.232.241.63
→
05/16 17:46, , 1F
05/16 17:46, 1F
→
05/16 17:46, , 2F
05/16 17:46, 2F
→
05/16 17:47, , 3F
05/16 17:47, 3F
→
05/16 21:07, , 4F
05/16 21:07, 4F
→
05/16 21:07, , 5F
05/16 21:07, 5F
→
05/17 21:10, , 6F
05/17 21:10, 6F
→
05/17 21:10, , 7F
05/17 21:10, 7F