2017年1月2日 星期一

[C++] Ref Class and Value Class

Reference: https://social.msdn.microsoft.com/Forums/vstudio/en-US/15d4d4c1-9bb0-430d-a48b-d21ea6ee578f/ref-class-vs-value-class?forum=vclanguage

Class 的類別成員預設是私有, Struct 的成員則是公開

Ref class or struct 將創件參考型別. 他們被管理在堆疊(heap) 並且只能參考 (像指標) 那些被儲存的物件並且傳送

Value class or struct 是實質型別. 當你當作參數傳送或者當成成員時, 整個記憶體區塊將被傳送, 所以你應該只在小的資料型別傳送實質型別

你的預設應該總是 ref class, 只有相當小的型別像 指標 或 Color 在 framework, 你應該選擇 value struct.

[C++] sample property

Reference: https://msdn.microsoft.com/zh-tw/library/2f1ec0b1.aspx

using namespace System;

ref class C
{
public:
    property int Size;
};

int main()
{
    C^ c = gcnew C;
    c->Size = 111;
    Console::WriteLine("c->Size = {0}", c->Size);
}

2015年1月14日 星期三

[英文] State 與 Status 的不同

State 通常會用在形容物體的狀態
例如:Water has three different states: solid, liquid and air 水有三種狀態: 固體, 液體 和 氣體

Status 則會用在形容流程的時態
例如:The status is under progress  時態正處於進行中

State 的問句:
Which state does water exist at room temperature? 水在室溫之下是以什麼型態來存在?

Status 的問句:
What is the status of the new project? 新的計畫現在進行(時態)的如何?

文章取自 yahoo 知識加: https://tw.knowledge.yahoo.com/question/question?qid=1508010905419

2014年7月7日 星期一

小咩寶觀察日記4


小寶貝現在越來越多動作了
很多事情累積在一起記錄

1. 會主動說便便了
之前保母在訓練哥哥布包尿片的時候
咩寶也跟著學了一點
昨天陪媽媽去看醫生的時候
自己跑來抱著我的大腿跟我說便便
我一聞 哦 還真的便便了
真是厲害

2. 愛撒嬌
之前就有抱著我 跟我說"愛你~"
尾音還拉長
昨天在家樂福
她坐在推車上 她爸爸推推車
寶貝突然很大聲的喊"爸爸"
我們都回頭看她 她爸爸"嗯?"
小寶貝就伸手抱他說"愛你~"
厚~ 真是太可愛了

3. 去游泳的時候
跑去玩溜滑梯的背影很可愛
還會跑錯方向
哈哈 還好我叫她 她就回來了
爬的速度越來越快

4. 生病了 不舒服了 只要媽媽抱
喔~ 我的小心肝
這樣讓媽媽真捨不得你

5. 游泳完 肚子餓 吃很多
自己吃了半碗白飯 還一直吃我碗裡的菜和肉
第一次在外面餵她吃飯餵得這麼輕鬆
游泳真的有累到她
雖然她只是一直在玩溜滑梯

6. 很聽媽媽的話
雖然我主張不要打 但小寶貝還是很聽話喔
我說 那個是爸爸的 不是玩具
放回去 寶貝就乖乖放回去了
一直拿外婆的名片來玩 外婆要拿回去她還不肯
我只跟她說一遍 那是外婆的 還給外婆
她就乖乖還給外婆了
真是一個乖寶貝

7. 雖然生病不舒服
但很忍耐 不太鬧脾氣 還會自己表達不舒服
在車上 我們聽 CD
她喊了"媽媽" 很小聲 我沒聽到 外婆跟我說 小寶貝叫你
我就聽到第二聲媽媽 不過沒有很大聲 我就不想理她
以為她鬧著要我抱她
沒想到她喊了第三聲 大聲的"媽媽"
我趕快回頭看她怎麼了 她用兩個手指頭壓著耳朵
皺眉看著我 好像很不舒服 我趕快把CD 音量調小聲
她就放下來了 問她這樣有好一點嗎
她看起來還是悶悶的說有
其實那個時候她正在發燒不舒服
真是辛苦你了 我的小心肝

2014年6月15日 星期日

[BCB] FindFirst 好範例

void __fastcall FindFile(FileList, sStartDir, sFileMask)
{
    TSearchRec SR;  //TSearchRec defines file information
    bool IsFound;

    // 0:a file was successfully located
    IsFound = (FindFirst(sStartDir+sFileMask, faAnyFile-faDirectory, SR) == 0);
    while (IsFound)
    {
        FileList->Add(sStartDir + SR.Name);
        IsFound = (FindNext(SR) == 0);
    }
    FindClose(SR);
}

2014年4月28日 星期一

[BCB] Thread 記錄

[BCB] Thread 記錄

幾個 Thread 常出現的問題:
1.      執行 WaitFor() 後,執行緒卡住回不來,無法結束。
WaitFor 可能造成 deadlock,若是不需該執行緒的執行結果,則建議不使用此功能。
2.      delete thread 有時會出現 Access Violation。
Thread 原生的 Terminate 可能已含清除記憶體,故在使用 delete thread 後造成錯誤,有兩種建議寫法:
2-1. Thread->OnTerminate = OnThreadTerminate;
    void __fastcall xxx::OnThreadTerminate()
   {
       …
       delete thread;  // 釋放記憶體
       thread = NULL;  // 若沒有指為 NULL,仍可讀到訊息,但讀到的訊息可能是錯誤的。
   }
2-2. 寫在程式的解構子中
    if(FTimerThread)
        FTimerThread->Terminate();
3.      Application->ProcessMessage 可能造成錯誤,及耗時。
Thread、Timer 和 Application->ProcessMessage 最好不要混用,除非必要或有很好的 debug 機制,否則易發生問題且不易追蹤。
另外,Application->ProcessMessage 呼叫的位置也很重要。
Example.
    TimerFunction()
   {
        // 最好放這,因為程式尚未執行,若因為 ProcessMessage 而跳離也不會對程式造成影響。
        // 中間呼叫 ThreadFunction,不要放中間,若跳離程式處理到一半會出錯。
        // 次好放這,程式已執行結束,跳離也沒關係。
   }
因為 Application->ProcessMessage 是去攔截訊息,看是否有需要先處理的消息,如果有則跳去處理優先全高的消息,因此會耗時,且放的位置會影響到程式的執行。
** 正確的使用方法:
3-1. 在單執行緒的程式中,可以安心使用 Application->ProcessMessages,只要系統其他應用程式不忙,那加了 Application->ProcessMessages 自然會讓  GUI 順暢。
3-2. 在多執行緒的程式中,應儘可能少用 Application->ProcessMessages,除非您已確定,此執行緒可以暫時不繼續處理。對於有大迴圈或處理大量資料的執行緒,如果擔心她會占用太多 CPU 時間,則應設定該執行緒的優先權為 Lower 或 Lowest,如此就不用擔心其他的執行緒受到影響了。
4.      Application->HandleMessage vs Application->ProcessMessage
HandleMessage 調用 ProcessMessage function。
ProcessMessage 實際獲取消息並分配。

2014年3月31日 星期一

[咩寶] 語言記錄

咩寶貝都 1Y2M9D 才想到要寫語言記錄 Orz...
沒關係 加減記一下吧 :D

1Y1M?D 在奶奶家 廚房裡
我抱著咩寶 隨意指著魚念 fish
小寶貝就跟著念了 一下子好驚喜
在家裡就用圖片念給她聽了 但她一直沒有開口
沒想到看到實體念一次就學了~ 真棒!

1Y2M6D 自家 客廳
念了好幾天的 tortoise 給小寶貝聽
今天小寶被突然開金口了 :D

1Y2M7D 自家 客廳
小寶貝喜歡在球池玩
今天她抱著兩個球 我只著一顆球說 ball
厚厚 她也跟著念了 看來小寶貝的英文還不錯喔
中文好像還沒學這麼快 XD
不過 ball 的音不太標準 聽起來有點像 棒

1Y2M7D 自家 臥房
老公教小咩寶 apple
雖然一樣是兩個音 不過小寶貝也念得不錯喔
真的很奇怪 為什麼 fish 發不出 fi 的音 = =
舌頭變化太多嗎?

1Y2M8D 自家 客廳
我坐在沙發上吃東西
寶貝很可愛得跟我說 抱抱
已經很清楚囉 這個詞我很早就教了
希望她可以藉由說話 改掉亂叫 發脾氣的狀態
但她一直不講 這兩天心情好 比較願意講抱抱了
可惜一旦暴走 還是用哭得比較能表達她的心情= =
是說 她哭我們也不會理她就是
我會在旁邊一直問話 問她要幹嘛
拿玩具好不好什麼的 一整個很吵@@

以上四個字 以準確音來說 torotise > 抱抱 > ball = apple > fish