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」


留言

熱門文章