Re: [問題] C++宣告物件的問題
※ 引述《yaushung (Ronald)》之銘言:
: 標題: [問題] C++宣告物件的問題
: 時間: Sun Jan 22 22:28:34 2012
:
: 開發平台(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
: → uranusjr:Test t3 = NULL; <-- NULL 不是 Test 的 instance 啊! 01/22 22:42
: → uranusjr:最簡單的解決方法就是用指標吧 01/22 22:43
我試了下面用法會有執行時期的錯誤
Test *t3 = NULL;
*t3 = Test(10);
是否可以麻煩給個使用指標方法的範例呢?
: 推 lausai:Test t3 = (if use argument) ? (Test(arg)) : (Test()); 01/22 22:55
: → lausai:這樣可以嗎@@? 01/22 22:56
這個可以耶
可是這跟我原本寫法有本質上的不同嗎
不太能理解這個可以但我原本寫法卻不行的差異
: → loveme00835:default ctor初始化時是否是將某數值寫死? 另一個ctor 01/22 23:27
: → loveme00835:只是該數值可變? 01/22 23:28
對
: 推 softwind:Test t3=NULL;// 先ctor然後是operator=跳call copy ctor 01/23 01:54
: → softwind:NULL在轉型的過程中 會實體化call ctor... 01/23 01:55
不是很懂這意思...可以詳細說明嗎
: 推 lmr3796:Test t3;等到要用的時候再t3=Test(10);或另一個呢? 01/23 01:55
試了 ... 這樣編譯時期就會遇到錯誤
: → james732:為什麼會發生執行期的錯誤…? 01/23 02:22
: 推 ah7675:感覺像是Java移過來的寫法? 還是乖乖用指標吧@@" 01/23 02:32
會想這樣寫確實是延續Java的習慣...
不是很了解這部分用指標該怎麼做
以上問題再麻煩大家協助解答了
謝謝 :)
--
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 59.114.237.247
→
01/23 14:45, , 1F
01/23 14:45, 1F
→
01/23 14:45, , 2F
01/23 14:45, 2F
→
01/23 14:45, , 3F
01/23 14:45, 3F
→
01/23 14:46, , 4F
01/23 14:46, 4F
推
01/23 15:56, , 5F
01/23 15:56, 5F
→
01/23 15:57, , 6F
01/23 15:57, 6F
→
01/23 16:47, , 7F
01/23 16:47, 7F
推
01/23 22:52, , 8F
01/23 22:52, 8F
討論串 (同標題文章)