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

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

Chinaunix

  平臺(tái) 論壇 博客 文庫(kù)
12下一頁(yè)
最近訪問板塊 發(fā)新帖
查看: 2525 | 回復(fù): 10
打印 上一主題 下一主題

在類定義中寫下 static const int size = 100;對(duì)不對(duì)呀? [復(fù)制鏈接]

論壇徽章:
0
跳轉(zhuǎn)到指定樓層
1 [收藏(0)] [報(bào)告]
發(fā)表于 2005-11-24 23:18 |只看該作者 |倒序?yàn)g覽
在類定義中寫下 static const int size = 100;對(duì)不對(duì)呀?
《thinking in c++》這本書188頁(yè)說(shuō)可以,但在vc上編譯怎么過不去呢?
請(qǐng)各位高手指點(diǎn)一下。

[ 本帖最后由 wcx1982 于 2005-11-25 00:18 編輯 ]

論壇徽章:
1
榮譽(yù)版主
日期:2011-11-23 16:44:17
2 [報(bào)告]
發(fā)表于 2005-11-24 23:34 |只看該作者
可以的,
這樣的一個(gè)常量
是這個(gè)類的所有對(duì)象共享的,
也就是只有這一個(gè)常量。

論壇徽章:
1
榮譽(yù)版主
日期:2011-11-23 16:44:17
3 [報(bào)告]
發(fā)表于 2005-11-24 23:35 |只看該作者
對(duì)了,vc對(duì)c++標(biāo)準(zhǔn)支持的不好,
建議用gcc。

論壇徽章:
0
4 [報(bào)告]
發(fā)表于 2005-11-24 23:49 |只看該作者
可以在頭文件中類體內(nèi)初始化有序型的const靜態(tài)常量,但是還是需要在文本文件中定義一下這個(gè)類,但是不能再初始化了:


  1. //c.h
  2. class test
  3. {
  4.      static const int a = 1; //在類體內(nèi)初始化
  5. };

  6. // c.cpp
  7. const int test::a; // 必須的成員定義
復(fù)制代碼

論壇徽章:
1
榮譽(yù)會(huì)員
日期:2011-11-23 16:44:17
5 [報(bào)告]
發(fā)表于 2005-11-25 09:04 |只看該作者
原帖由 converse 于 2005-11-24 23:49 發(fā)表
可以在頭文件中類體內(nèi)初始化有序型的const靜態(tài)常量,但是還是需要在文本文件中定義一下這個(gè)類,但是不能再初始化了:


  1. //c.h
  2. class test
  3. {
  4.      static const int a = 1; //在類體內(nèi)初始化
  5. };

  6. // c ...
  7. const int test::a; // 必須的成員定義
復(fù)制代碼


不知道到底是不是必需的,如:
  1. #include <iostream>
  2. using namespace std;

  3. class T{
  4.     public:
  5.         static const int count = 100;
  6. };

  7. int main()
  8. {
  9.     cout << T::count << endl;
  10. }
復(fù)制代碼
[test:/home/test/src/temp]g++ test.cpp
[test:/home/test/src/temp]./a.out
100
  1. cout << T::count << endl;//改成
  2. cout << static<void *>(&T::count) << endl;
復(fù)制代碼
/home/test/src/temp/test.cpp:12: undefined reference to `T::count'
所以好像只在需要它真實(shí)存儲(chǔ)的時(shí)候才需要它的具體的定義.不過書上都說(shuō)要定義的.包括TCPL吧.

[ 本帖最后由 THEBEST 于 2005-11-25 09:06 編輯 ]

論壇徽章:
0
6 [報(bào)告]
發(fā)表于 2005-11-25 09:13 |只看該作者
我把cout改成printf("%d", T::count),看匯編:
        subl        $8, %esp
        pushl        $100
        pushl        $LC0
        call        _printf
可以看出,在THEBEST給出的第一種情況下,T::count已經(jīng)被完全優(yōu)化掉了。

論壇徽章:
0
7 [報(bào)告]
發(fā)表于 2005-11-25 09:21 |只看該作者

別誤導(dǎo)人家

類靜態(tài)成員初始化在類體外進(jìn)行。有意見請(qǐng)看清華出版社出版的姓呂的編的《C++語(yǔ)言基礎(chǔ)編程》

論壇徽章:
0
8 [報(bào)告]
發(fā)表于 2005-11-25 14:33 |只看該作者
當(dāng)它本身又是一個(gè)個(gè)近整型的常量,即采用static const int、static const char, static const bool時(shí),在聲明的同時(shí)進(jìn)行初始化就可以了。其他的情況,例如是static const float的話,就需要在類的實(shí)現(xiàn)部分定義。

論壇徽章:
0
9 [報(bào)告]
發(fā)表于 2005-11-25 14:36 |只看該作者
原帖由 renstone921 于 2005-11-25 14:33 發(fā)表
當(dāng)它本身又是一個(gè)個(gè)近整型的常量,即采用static const int、static const char, static const bool時(shí),在聲明的同時(shí)進(jìn)行初始化就可以了。其他的情況,例如是static const float的話,就需要在類的實(shí)現(xiàn)部分定義。


primer里面寫的是"有序型",我沒有去查過它的英文寫法是什么~~這里說(shuō)的近整型的英文是什么?

論壇徽章:
0
10 [報(bào)告]
發(fā)表于 2005-11-25 14:46 |只看該作者
不好意思,只是突然想不起來(lái)中文術(shù)語(yǔ)了,就是你說(shuō)的那個(gè)"有序型"。
您需要登錄后才可以回帖 登錄 | 注冊(cè)

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

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP