[問題] 建構子初始值

看板C_and_CPP作者 (吉他手)時間14年前 (2011/09/17 21:34), 編輯推噓2(2016)
留言18則, 5人參與, 最新討論串1/1
開發平台(Platform): (Ex: VC++, GCC, Linux, ...) VC++ 問題(Question): Class 裡面私域變數的值 若在建構子裡面設定初始值 一定要透過member function嗎 例如: 程式碼(Code): Class A{ public: A(); ~A(); int Var(); void Fun1(); void Fun2(); private: int var; }; A::A(){ var = 10; } 這樣給值 結果在Fun1()或Fun2()裡面收到的var都不會是10 一定只能用 int A::Var(){ return var = 10; } 這樣 才能在Fun1()或Fun2()裡面收到正確的var = 10嗎 感謝 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 161.130.178.168

09/17 21:41, , 1F
09/17 21:41, 1F

09/17 21:54, , 2F
我在試了一下...還是傳亂數值 T_T~
09/17 21:54, 2F

09/17 22:12, , 3F
你把你用的程式貼上來看看好了...
09/17 22:12, 3F

09/17 22:35, , 4F
http://codepad.org/aDO1QE3r 部分的code是這樣
09/17 22:35, 4F

09/17 22:36, , 5F
在return schedule_day 傳回的就不會是0...
09/17 22:36, 5F

09/17 22:48, , 6F
請問在剛實作出這class,馬上show值出來也不正確嗎?
09/17 22:48, 6F

09/17 22:49, , 7F
其他的資料也會錯誤嗎?還是只有特定的
09/17 22:49, 7F

09/17 22:51, , 8F
http://pastie.org/2548174 我這樣跑可以印出 0
09/17 22:51, 8F

09/17 22:52, , 9F
我是猜測可能有其他地方動到數值了
09/17 22:52, 9F

09/17 22:54, , 10F
重貼一下 http://pastie.org/2548183 這個可以跑出 0
09/17 22:54, 10F

09/17 22:54, , 11F
我也覺得是其他地方改到了
09/17 22:54, 11F

09/17 22:54, , 12F
我在debug時看他傳的值是錯的,導致有個函數會有問題
09/17 22:54, 12F

09/17 22:56, , 13F
所以正常這寫法是ok的吼 感謝~我再找找有沒哪邊動到
09/17 22:56, 13F

09/17 22:57, , 14F
我覺得你原本的寫法已經是正確的,細心檢查一下吧
09/17 22:57, 14F

09/17 22:57, , 15F
可以試看看建構後馬上show值,不要在跑其他地方
09/17 22:57, 15F

09/17 23:20, , 16F
找到了...它前面的EventManager裡面有函數會先用到
09/17 23:20, 16F

09/17 23:21, , 17F
它...原來是順序弄錯~~~感謝大家幫忙T_T~~
09/17 23:21, 17F

09/19 02:45, , 18F
怎不用 A():var(10) {}
09/19 02:45, 18F
文章代碼(AID): #1ETA7Hy7 (C_and_CPP)