[問題] C++宣告物件的問題

看板C_and_CPP作者 (Ronald)時間12年前 (2012/01/22 22:28), 編輯推噓4(408)
留言12則, 8人參與, 最新討論串1/3 (看更多)
開發平台(Platform): VC++ 問題(Question): 定義一個類別 class Test { public: Test(); Test(int); } 宣告時用 Test t1(10); Test t2 = Test(10); 都可以 問題是 我今天會需要先判斷執行的需求 決定該使用哪種方法宣告(帶一個參數或是不帶參數) 我試了像是 Test t3 = NULL; t3 = Test(10); 卻會在執行時發生執行時期的錯誤 想請問我的需求應該怎麼去實現呢 謝謝 -- -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 218.162.141.236

01/22 22:42, , 1F
Test t3 = NULL; <-- NULL 不是 Test 的 instance 啊!
01/22 22:42, 1F

01/22 22:43, , 2F
最簡單的解決方法就是用指標吧
01/22 22:43, 2F

01/22 22:55, , 3F
Test t3 = (if use argument) ? (Test(arg)) : (Test());
01/22 22:55, 3F

01/22 22:56, , 4F
這樣可以嗎@@?
01/22 22:56, 4F

01/22 23:27, , 5F
default ctor初始化時是否是將某數值寫死? 另一個ctor
01/22 23:27, 5F

01/22 23:28, , 6F
只是該數值可變?
01/22 23:28, 6F

01/23 01:54, , 7F
Test t3=NULL;// 先ctor然後是operator=跳call copy ctor
01/23 01:54, 7F

01/23 01:55, , 8F
NULL在轉型的過程中 會實體化call ctor...
01/23 01:55, 8F

01/23 01:55, , 9F
Test t3;等到要用的時候再t3=Test(10);或另一個呢?
01/23 01:55, 9F

01/23 02:22, , 10F
為什麼會發生執行期的錯誤…?
01/23 02:22, 10F

01/23 02:32, , 11F
感覺像是Java移過來的寫法? 還是乖乖用指標吧@@"
01/23 02:32, 11F

01/30 16:10, , 12F
t2、t3 要用 new 建立物件的記憶體空間,怎沒人提到這點?@@
01/30 16:10, 12F
文章代碼(AID): #1F71qLLe (C_and_CPP)
文章代碼(AID): #1F71qLLe (C_and_CPP)