GOOP V.S Sub VI

最近看見Jimmy-Chen有提到GOOP,而且國外對於這個技術也已經相當成熟了,說實在的,GOOP還是我第一次聽到,後來查了一些資料才知道,原來它就是"圖形化的物件導向程式",與C語言中的CLASS類似....所以我依據一些範例程式做了一個如下圖所示的GOOP程式.

![](upload://e1SdVwtKKfvpQVs4FJ2HDoQ1adA.gif)

這個程式在C裡面的語法是這樣的:

class add

{

 private:

    float a;

    float b;

    float c;

 public:

    void SET_A(float k1)

    a=k1;

    void SET_B(float k2)

    b=k2;

   void ADD_A_B(void)

      c=a+b;

   float Get_c(void)

     return c;

}

也就是有abc三個私有變數(屬性)與4個方法,但是實現出來的結果感覺與Sub vi一樣,並沒有感覺到GOOP的優點.....似乎還有點麻煩.....而且使用GOOP的概念來實現LV的程式,是不是可以像C一樣,具有繼承的特性呢??

另一方面,國外是不是有那種可以將C中的CLASS直接轉成LV的GOOP的介面程式呢??

在此也分享 個人與goop接觸的經驗,因為公司與歐洲某公司合作project時知道該公司利用一個叫GOOP Wizard 2.1的軟體將Labivew程式轉換為GOOP的型式,以下網址有一些該軟體的訊息可供參考,也許大家看過相關介紹後會對GOOP有更深的認識.

http://www.endevo.se/default.asp?lang=eng 

點選左方Products->GOOP Wizard2.1

[QUOTE=麟仔]

(省略 by Airbolt)

也就是有abc三個私有變數(屬性)與4個方法,但是實現出來的結果感覺與Sub vi一樣,並沒有感覺到GOOP的優點.....似乎還有點麻煩.....而且使用GOOP的概念來實現LV的程式,是不是可以像C一樣,具有繼承的特性呢??

另一方面,國外是不是有那種可以將C中的CLASS直接轉成LV的GOOP的介面程式呢??

[/QUOTE]

對於 GOOP 一直不是很暸解,同事也一直覺得 LabVIEW 沒有像 C++ 的 OOP 的觀念
但是似乎這樣的看法不斷被推翻,現在不知道是否有 繼承 的特性,如果有的話,
那麼我相信 對於自己在 code 上所運用的技術 一定會帶來大革命的。

另外有人有更深入的 GOOP 的相關資料 及 運用嗎?

[QUOTE]

對於 GOOP 一直不是很暸解,同事也一直覺得 LabVIEW 沒有像 C++ 的 OOP 的觀念
但是似乎這樣的看法不斷被推翻,現在不知道是否有 繼承 的特性,如果有的話,
那麼我相信 對於自己在 code 上所運用的技術 一定會帶來大革命的。

另外有人有更深入的 GOOP 的相關資料 及 運用嗎?

[/QUOTE]

以下有二個網站,其中一個是論壇,提供給你參考

http://www.openg.org

http://forums.lavausergroup.org/index.php?showtopic=1427&hl=goop

謝謝 <span =bold>ancle ,提供的資訊。    我要好好研究、研究一下。

[QUOTE=Airbolt]謝謝 ancle ,提供的資訊。    我要好好研究、研究一下。[/QUOTE]

對於GOOP我是完全不熟,期待您的研究結果,可以分享給大家,謝謝!

看得出來是不小的一塊技術領域,我會努力看看。

另外網友們如果對此有涉獵的話,也可以一起來討論。

Airbolt38695.4703240741

提供一個連結,上頭好像有滿多  GOOP 的資料,大家參考一下:

在瀏灠網友 sinmorn 所提供的 LabVIEW 8.2 發行消息 時,
看到了這篇有關 Object Oriented Applications  的 Flash 教學:

Developing Object Oriented Applications in LabVIEW

 

由此可以清楚看出 GOOP 是怎麼實現的,

而這樣的 coding 技術 (GOOP),縱使在舊版的 LabVIEW 不借由
Project Explorer 亦可以自行設計完成之。

 

目前比較不清楚的是當 Fahrenheit 繼承自 Temperature 時,
它所使用的 Class Reference (Fahrenheit.ctl) 是長什麼樣子,
如果知道的話,就能知道「繼承」的實現方法為何。

另外「Public」、「Protected」、「Private」的實現方法,
個人也是比較不清楚的地方。

Airbolt38946.3814467593

關於GOOP我也還在閱讀資料中,看到NI的application Note第143號,有相關的說明,請參考:http://www.labview.com.tw/document/an/pdf/AN143.PDF