[問題] 建立物件有沒有加 () 的差別
class test
{
public:
test() { cout << "Hello" << endl; }
};
int main() {
test t1;
}
與
int main() {
test t1();
}
我原本以為它們是同義的,執行結果也相同
不過用 gcc -S 觀看編譯出來的組合語言碼
才發現沒加 () 的版本比有加的版本多了 30 餘行
有 () 版:http://nopaste.csie.org/4c0a4 99 行
無 () 版:http://nopaste.csie.org/25f07 132 行
很好奇,為什麼會有這樣的差異呢?
平台:gcc version 4.4.1 (Ubuntu 4.4.1-4ubuntu9)
編譯指令:g++ test.cpp -S
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.117.171.46
推
04/19 18:19, , 1F
04/19 18:19, 1F
→
04/19 18:19, , 2F
04/19 18:19, 2F
→
04/19 18:26, , 3F
04/19 18:26, 3F
推
04/19 18:30, , 4F
04/19 18:30, 4F
→
04/19 18:35, , 5F
04/19 18:35, 5F
推
04/19 18:39, , 6F
04/19 18:39, 6F
→
04/19 18:39, , 7F
04/19 18:39, 7F
→
04/19 18:40, , 8F
04/19 18:40, 8F
→
04/19 18:40, , 9F
04/19 18:40, 9F
推
04/19 18:43, , 10F
04/19 18:43, 10F
→
04/20 01:04, , 11F
04/20 01:04, 11F
→
04/20 01:04, , 12F
04/20 01:04, 12F
→
04/20 01:05, , 13F
04/20 01:05, 13F
→
04/20 01:05, , 14F
04/20 01:05, 14F
→
04/20 01:06, , 15F
04/20 01:06, 15F
→
04/20 01:07, , 16F
04/20 01:07, 16F
C_and_CPP 近期熱門文章
PTT數位生活區 即時熱門文章