[問題] 不用產生物件呼叫member function
剛看到這種寫法
class A
{
public:
A(){ func(0); }
~A() { cout << "I am a Destructor! " << endl; }
void func(int data) { printf("A1: %d\n", data); }
};
int main()
{
A().func(1);
return 0;
}
-----Output-----
A1: 0
A1: 1
覺得挺神奇的 因為沒看過
不用把A instantiate(實體化)出來也可以呼叫constructor和member function
有什麼教材有提到這個東西的嗎?
課本都沒有這樣寫....
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.112.4.181
→
11/08 15:56, , 1F
11/08 15:56, 1F
可以請問實體化的物件名是? 就叫A() 嗎?
→
11/08 17:09, , 2F
11/08 17:09, 2F
※ 編輯: k0783154 來自: 140.112.4.181 (11/08 17:20)
我剛發現這樣的實體生命週期只有一行
A();
A().func(1);
---Output---
A1: 0
I am a Destructor!
A1: 0
A1: 1
I am a Destructor!
不知道這種用法 有什麼應用呢?!
※ 編輯: k0783154 來自: 140.112.4.181 (11/08 17:38)
→
11/08 18:39, , 3F
11/08 18:39, 3F
→
11/08 21:04, , 4F
11/08 21:04, 4F
→
11/08 21:05, , 5F
11/08 21:05, 5F
→
11/08 21:24, , 6F
11/08 21:24, 6F
→
11/08 23:25, , 7F
11/08 23:25, 7F
推
11/08 23:33, , 8F
11/08 23:33, 8F
→
11/08 23:34, , 9F
11/08 23:34, 9F
→
11/08 23:34, , 10F
11/08 23:34, 10F
→
11/08 23:35, , 11F
11/08 23:35, 11F
→
11/08 23:35, , 12F
11/08 23:35, 12F
→
11/08 23:37, , 13F
11/08 23:37, 13F
→
11/08 23:37, , 14F
11/08 23:37, 14F
→
11/09 09:23, , 15F
11/09 09:23, 15F