关于《Java编程思想》的简单纠正
今天在看《Java編程思想》(我買的第四版,中文版)這本書的時(shí)候,在書第93頁部分開頭,有這么一段描述:
“5.6.1? ? 指定初始化
? ? 如果想為某個(gè)變量賦初值,該怎么做呢?有一種很直接的辦法,就是在定義類成員變量的地方為其賦值(注意在C++里不能這么做,盡管C++的新手們總想這樣做)。以下代碼片段修改了InitialValues類成員變量的定義,直接提供了初值。“
原文是這么說的,請注意我劃下劃線的地方,這里的意思按我的理解是,在Java中可以在定義類成員變量的時(shí)候賦初值,但是在C++中卻無法這么做,于是我將信將疑地做了個(gè)小測試。
#include<iostream> class test {int num = 5;double numbers = 1.5; public:void print(void){std::cout << num << std::endl;std::cout << numbers << std::endl;} };int main(void) {test te;te.print();return 0; }我使用的是微軟公司的Visual Studio 2017 社區(qū)版,在這個(gè)版本的編譯器中,對于這種代碼的書寫是完全被接受的(編譯過程甚至沒有出現(xiàn)警告),結(jié)果十分明顯,這個(gè)測試程序成功地輸出了5和1.5這兩個(gè)數(shù)字。
對于書中所述和實(shí)際的出入,我認(rèn)為可能有以下原因:
1.本書的作者可能在寫書的時(shí)候記錯(cuò)了
2.國內(nèi)人員在翻譯的時(shí)候出錯(cuò)(我沒有本書的英文版)
3.作者寫此書的時(shí)候,C++還停留在前面的幾個(gè)版本,可能在舊的C++標(biāo)準(zhǔn)中并不允許類中初始化的行為,隨著新標(biāo)準(zhǔn)的頒布,加入了這一語法。
4.我使用的編譯器支持這類語法,但可能其他編譯器不支持(正如我用C語言寫代碼的時(shí)候,Vs2017不支持變長數(shù)組(VLA),它將其視為錯(cuò)誤,但在另一款編譯器Dev C++中卻完全支持)。
具體情況我也不清楚,如果有知情者知道的歡迎留言。
總結(jié)
以上是生活随笔為你收集整理的关于《Java编程思想》的简单纠正的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: ElasticSearch基本查询一(英
- 下一篇: 《Java编程思想》10.6 匿名内部类