C++自修入門實境秀、C++ Primer 5版研讀秀 4/ ~頁51複合型別參考(references))-20190707_195058
頁48
這裡visible就是就是accessible
所以不當翻成「可見的」,應如後翻成「可存取的」才恰切
2:20
建議:在你初次使用它們的時候定義變數。
→建議:在你初次使用變數的時候要定義它們。
頁49
The global scope has no name. Hence, when the scope operator has an empty left-hand side, it is a request to fetch the name on the right-hand side from the global scope.
23:20The global scope 竟翻成了「區域範疇」→「全域範疇」
3:30 在使用變數前要先定義好它
4:18沒有初始化的變數是很危險的
13:00全域變數與區域變數
13:20 25:35翻譯須注意的地方
32:00 32:40區域變數和全域變數要分清楚。非區域變數要用監看式來監看
19:00範疇運算子
39:00
練習2.14
int i = 100,sum=0;
for (int i = 0; i !=10 ; i++)
{
sum += i;
}
std::cout << i << " " << sum << std::endl;
合法的,印出的是「100 45」 42:30 49:00
頁50 49:50 複合型別(compound type)
51:40 換個地方看書
58:10 1:24:40參考(references)
參考其實就是它參考的影子/替身。
被參考的是本尊。
1:1:40參考與變數的宣告與定義,不過是在變數名稱前加每個單元「&」符號爾
1:5:10 initializer初始器(初始設定式)
1:8:00「參考」類型(型別type)表示的特徵(基礎型別後加個「&」)
1:16:00「參考」並無也並非具體物件或變數
1:19:40自訂Visual Studio 2019 的偵錯工具列按鈕
1:30:55
頁51
Because references are not objects, we may not define a reference to a reference.
參考不能被參考1:32:00
1:36:30 & ampersand
各種符號的唸法
1:43:26const
a reference may be bound only to an object, not to a literal or to the result of a more general expression:
1:46:50參考的對象只能是物件object/變數variable,不能是值或數值。
「a more general」1:49:00這裡more應該是對應於前提「not to a literal」,more,表示「甚至」(即 even more)。這個more修飾的是「not」,不是「general」。⑧找對主詞
「a more general expression」不宜翻成「更一般的運算式」
1:52:17應該翻成「甚至是一般運算式算出來的結果」
1:55:01練習2.15
(a) int ival = 1.01; 有效但會被截斷
(b) int &rval1 = 1.01;無效,因為不同型別,且不能參考數值。
(c) int &rval2 = ival;要有效的話,ival也要是int型別而且經過初始化才行。2:31:00
(d) int &rval3;無效,因為沒有初始化(沒有初始器或初始設定式)
2:3:30練習2.16
int i = 0, &r1 = i; double d = 0, &r2 = d;這個沒問題
(a) r2 = 3.14159;有效。因為r2是double
(b) r2 = r1;有效,雖然r1、r2型別不同,2:22:35但可以隱含轉型。這裡並不是在定義和初始化r2,所以可以接受。這裡不是要r2參考(指涉)r1。而前一題因為是「定義」,所以型別不同時就不行!
(c) i = r2; 有效,但會被截斷。因為i是普通的變數物件。
(d) r1 = d;有效。因為d不是值,而是object/veriable
2:9:07
& 這個符號是在定義時才用,在運算與調用時均不用。
以宣告和定義的嚴格區分來看,參考,就只有定義,不會有宣告。因為宣告是不能有initializer初始化器或初始設定式的(參見頁45)
練習2.17
int i, & ri = i;
i = 5; ri = 10;
std::cout << i << " " << ri << std::endl;
結果是「10 10」
留言