亚洲av成人无遮挡网站在线观看,少妇性bbb搡bbb爽爽爽,亚洲av日韩精品久久久久久,兔费看少妇性l交大片免费,无码少妇一区二区三区

  免費(fèi)注冊 查看新帖 |

Chinaunix

  平臺 論壇 博客 文庫
最近訪問板塊 發(fā)新帖
查看: 2437 | 回復(fù): 8
打印 上一主題 下一主題

[C++] 疑惑:一個不常見的結(jié)構(gòu)定義 [復(fù)制鏈接]

論壇徽章:
0
跳轉(zhuǎn)到指定樓層
1 [收藏(0)] [報告]
發(fā)表于 2008-10-09 22:43 |只看該作者 |倒序瀏覽
static const struct sfunc_return_type sfunc_table[] = {
      { "$realtime",   IVL_VT_REAL,   1, 0 },
      { "$bitstoreal", IVL_VT_REAL,   1, 0 },
      { "$itor",       IVL_VT_REAL,   1, 0 },
      { "$realtobits", IVL_VT_LOGIC, 64, 0 },
      { "$time",       IVL_VT_LOGIC, 64, 0 },
      { "$stime",      IVL_VT_LOGIC, 32, 0 },
      { "$simtime",    IVL_VT_LOGIC, 64, 0 },
      { 0,             IVL_VT_LOGIC, 32, 0 }
};

struct sfunc_return_type_cell : sfunc_return_type {
      struct sfunc_return_type_cell*next;
};

struct sfunc_return_type_cell*cur = sfunc_stack;
      while (cur) {
            if (strcmp(cur->name, name) == 0)
                  return cur;

            cur = cur->next;
      }


請問:
這里
1.
struct sfunc_return_type_cell : sfunc_return_type {
      struct sfunc_return_type_cell*next;
};

怎么理解?
2.不太理解這里cur指針到底是什么類型,為什么cur->name和cur->next可以使用?
請哪位解釋下,謝謝!

論壇徽章:
0
2 [報告]
發(fā)表于 2008-10-09 22:58 |只看該作者
原帖由 fineamy 于 2008-10-9 22:43 發(fā)表




請問:
這里
1.
struct sfunc_return_type_cell : sfunc_return_type {
      struct sfunc_return_type_cell*next;
};
怎么理解?
2.不太理解這里cur指針到底是什么類型,為什么cur->name和cur ...


這個 你得先把
struct sfunc_return_type
的定義找出來
就可以理解了

呵呵 你在玩verilog啊

[ 本帖最后由 blizzard213 于 2008-10-9 23:03 編輯 ]

論壇徽章:
0
3 [報告]
發(fā)表于 2008-10-09 23:02 |只看該作者
原帖由 fineamy 于 2008-10-9 22:43 發(fā)表




請問:
這里
1.
struct sfunc_return_type_cell : sfunc_return_type {
      struct sfunc_return_type_cell*next;
};
怎么理解?
2.不太理解這里cur指針到底是什么類型,為什么cur->name和cur ...

see here
/*
 * This table describes all the return values of various system
 * functions. This table is used to elaborate expressions that are
 * system function calls.
 */

struct sfunc_return_type {
      const char*   name;
      NetExpr::TYPE type;
      unsigned      wid;
      int           signed_flag;
};


那個冒號是繼承的意思

論壇徽章:
0
4 [報告]
發(fā)表于 2008-10-09 23:26 |只看該作者
這個是C++吧

論壇徽章:
0
5 [報告]
發(fā)表于 2008-10-09 23:30 |只看該作者
原帖由 雨過白鷺洲 于 2008-10-9 23:26 發(fā)表
這個是C++吧

呵呵 見標(biāo)題

論壇徽章:
0
6 [報告]
發(fā)表于 2008-10-10 06:31 |只看該作者
struct
也可以繼承??
應(yīng)該不能把!

還是第一次看見!

論壇徽章:
0
7 [報告]
發(fā)表于 2008-10-10 09:07 |只看該作者
C++的結(jié)構(gòu)體,實際上和類沒太大區(qū)別,繼承也就不奇怪了

論壇徽章:
0
8 [報告]
發(fā)表于 2008-10-10 09:09 |只看該作者
討論一下結(jié)構(gòu)(struct)與類(class)的區(qū)別,你認(rèn)為結(jié)構(gòu)(struct)有些什么作用,可以完全用類(class)取代么??
---------------------------------------------------------------

問的人太多,干脆整理個FAQ吧。
首先,討論這個問題應(yīng)該僅從語法上討論,如果討論不同人之間編程風(fēng)格上的差異,那這個問題是沒有答案的。畢竟不同的人偏好不同。

從語法上,在C++中(只討論C++中)。class和struct做類型定義時只有兩點(diǎn)區(qū)別:
(一)默認(rèn)繼承權(quán)限。如果不明確指定,來自class的繼承按照private繼承處理,來自struct的繼承按照public繼承處理;
(二)成員的默認(rèn)訪問權(quán)限。class的成員默認(rèn)是private權(quán)限,struct默認(rèn)是public權(quán)限。
除了這兩點(diǎn),class和struct基本就是一個東西。語法上沒有任何其它區(qū)別。

不能因為學(xué)過C就總覺得連C++中struct和class都區(qū)別很大,下面列舉的說明可能比較無聊,因為struct和class本來就是基本一樣的東西,無需多說。但這些說明可能有助于澄清一些常見的關(guān)于struct和class的錯誤認(rèn)識:
(1)都可以有成員函數(shù);包括各類構(gòu)造函數(shù),析構(gòu)函數(shù),重載的運(yùn)算符,友元類,友元結(jié)構(gòu),友元函數(shù),虛函數(shù),純虛函數(shù),靜態(tài)函數(shù);
(2)都可以有一大堆public/private/protected修飾符在里邊;
(3)雖然這種風(fēng)格不再被提倡,但語法上二者都可以使用大括號的方式初始化:A a = {1, 2, 3};不管A是個struct還是個class,前提是這個類/結(jié)構(gòu)足夠簡單,比如所有的成員都是public的,所有的成員都是簡單類型,沒有顯式聲明的構(gòu)造函數(shù)。
(4)都可以進(jìn)行復(fù)雜的繼承甚至多重繼承,一個struct可以繼承自一個class,反之亦可;一個struct可以同時繼承5個class和5個struct,雖然這樣做不太好。
(5)如果說class的設(shè)計需要注意OO的原則和風(fēng)格,那么沒任何理由說設(shè)計struct就不需要注意。
(6)再次說明,以上所有說法都是指在C++語言中,至于在C里的情況,C里是根本沒有“class”,而C的struct從根本上也只是個包裝數(shù)據(jù)的語法機(jī)制。
---------------------------------------------------------------

最后,作為語言的兩個關(guān)鍵字,除去定義類型時有上述區(qū)別之外,另外還有一點(diǎn)點(diǎn):“class”這個關(guān)鍵字還用于定義模板參數(shù),就像“typename”。但關(guān)鍵字“struct”不用于定義模板參數(shù)

論壇徽章:
0
9 [報告]
發(fā)表于 2008-10-10 09:45 |只看該作者

謝謝樓上各位!

blizzard213,不好意思,忘貼了.呵呵,ICARUS我只是隨便看看而已!
您需要登錄后才可以回帖 登錄 | 注冊

本版積分規(guī)則 發(fā)表回復(fù)

  

北京盛拓優(yōu)訊信息技術(shù)有限公司. 版權(quán)所有 京ICP備16024965號-6 北京市公安局海淀分局網(wǎng)監(jiān)中心備案編號:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年舉報專區(qū)
中國互聯(lián)網(wǎng)協(xié)會會員  聯(lián)系我們:huangweiwei@itpub.net
感謝所有關(guān)心和支持過ChinaUnix的朋友們 轉(zhuǎn)載本站內(nèi)容請注明原作者名及出處

清除 Cookies - ChinaUnix - Archiver - WAP - TOP