C++自修入門實境秀、C++ Primer 5版研讀秀 39/ ~v7類別-練習7.2-20190901_082619
but that there is value in consistency.
但維持前後一致有其價值。
→然而保持一定的規格與格式是有其必要,也有其優勢的。
Other indentation conventions will become clear as our programs become more sophisticated.
1.5類別簡介(Introducing Classes)
類別型別(class types) vs 內建型別(built-in types)
In fact, a primary focus of the design of C++ is to make it possible to define class types that behave as naturally as the builtin types. 第39集 3:26:00
第39集 3:25:00
We’ll implement this class in later chapters as we learn more about types,expressions, statements, and functions.
我們會在後續章節實作這個類別,在我們學習更多型別、運算式、述句,以及函式的相關知識之後。
④倒序重組 →在我們學習更多型別、運算式、述句,以及函式的相關知識之後,我們會在後續章節實作這個類別。
頁21
既然我們已經知道可以把什麼運算用在Sales_item物件上。
這裡的「Sales_item物件」其實就是前一頁所說的「型別為Sales_item的一個物件」:
我們經常把「型別為Sales_item的一個物件」,縮略為「一個Sales_item物件」,或甚至更簡短的「一個Sales_item」。
這樣「Sales_item物件」的表述,其實是縮語!不要弄錯對象了。這樣類別class,與型別 type就比較不易混淆了。
這個程式以兩個#include指示詞開始,其中一個使用了一種新的形式。來自標準程式庫的標頭被包在角括號(angle brackets,<>)中。並非標準程式庫一部分的標頭則包在雙引號 (double quotes,"")中。(第39集,40:00)
頁22
使用檔案重導
第39集,48:00
$ addltems <infile >outfile
假設$是系統提示字元,而我們的加法程式已經編譯為了一個叫做addltems.exe的可執行 檔(或UNIX系統上的addltems ),這道命令將會從名為infile的檔案讀取交易記錄,並將其輸出寫到目前目錄中一個名叫outfile的檔案。
這樣「Sales_item物件」的表述,其實是縮語!不要弄錯對象了。這樣類別class,與型別 type就比較不易混淆了。
這個程式以兩個#include指示詞開始,其中一個使用了一種新的形式。來自標準程式庫的標頭被包在角括號(angle brackets,<>)中。並非標準程式庫一部分的標頭則包在雙引號 (double quotes,"")中。(第39集,40:00)
頁22
使用檔案重導
第39集,48:00
$ addltems <infile >outfile
假設$是系統提示字元,而我們的加法程式已經編譯為了一個叫做addltems.exe的可執行 檔(或UNIX系統上的addltems ),這道命令將會從名為infile的檔案讀取交易記錄,並將其輸出寫到目前目錄中一個名叫outfile的檔案。
已經編譯為了→已經編譯成了
練習1.20
1) Sales_item item1, item2,item3,item4;//這只能處理剛好4筆交易記錄
已經編譯為了→已經編譯成了
練習1.20
1) Sales_item item1, item2,item3,item4;//這只能處理剛好4筆交易記錄
std::cin >> item1 >> item2>>item3>>item4;
std::cout << item1 + item2 +item3+item4<< std::endl; //這也寫成了加總,並非題意,應改寫成:
std::cout << item1 << '\n'<<item2 << '\n' << item3 << '\n' <<item4 << std::endl;//才合題意 第39集,1:17:20
2) //Sales_item item1,itemsum;
//while (std::cin >> item1)
//{
// itemsum += item1;//這是將各筆交易記錄各售出數量、營業額、平均售價加總,並非題意
//}
//std::cout << itemsum << std::endl;
for (Sales_item Si:vecSi )
{
cout << Si << endl;
}
參考練習2.41
練習1.21
第39集,1:19:10
Sales_item item,itemPrevious;
while (cin>>item)
{
if (item.isbn()==itemPrevious.isbn())
{
cout<<item + itemPrevious<<endl;
cout<<item + itemPrevious<<endl;
break;
}
itemPrevious = item;
}
參考練習2.41
第39集,1:25:28
練習1.22
Sales_item item, itemPrevious, itemSum;
while (cin>>item)
{
if (item.isbn()==itemPrevious.isbn())
{
}
}
itemPrevious = item;
}
cout << itemSum+itemPrevious << endl;
頁23
第39集 1:59:20
1.5.2成員函式初探
什麼是成員函式?
Member functions are sometimes referred to as methods .
成員函式有時被稱作方法(methods)。
method Synonym for member function.(頁27)
不是普通函式,而是成員函式才會叫做方法!
1.5.2成員函式初探
什麼是成員函式?
Member functions are sometimes referred to as methods .
成員函式有時被稱作方法(methods)。
method Synonym for member function.(頁27)
不是普通函式,而是成員函式才會叫做方法!
第39集 2:4:50
Ordinarily, we call a member function on behalf of an object. 第39集 2:12:20
一般來說,我們會以一個物件的身分來呼叫一個成員函式。
這裡on behalf of 的翻法就與後面不同。
第39集 2:16:20
頁24
練習1.23
method Synonym for member function.(頁27)
不是普通函式,而是成員函式才會叫做方法!
第39集 2:4:50
Ordinarily, we call a member function on behalf of an object. 第39集 2:12:20
一般來說,我們會以一個物件的身分來呼叫一個成員函式。
這裡on behalf of 的翻法就與後面不同。
第39集 2:16:20
頁24
練習1.23
第39集 2:19:30
Sales_item item, itemPrevious;unsigned ctr=1;
while (cin>>item)
{
Ordinarily, we call a member function on behalf of an object. 第39集 2:12:20
一般來說,我們會以一個物件的身分來呼叫一個成員函式。
這裡on behalf of 的翻法就與後面不同。
第39集 2:16:20
頁24
練習1.23
第39集 2:19:30
Sales_item item, itemPrevious;unsigned ctr=1;
while (cin>>item)
{
if (item.isbn()==itemPrevious.isbn())
{
++ctr;
cout << itemPrevious.isbn() << " 有 " << ctr << " 筆" << endl;
}
}
itemPrevious = item;
}
cout << itemPrevious.isbn() << " 有 " << ctr << " 筆" << endl;
第39集 2:40:20
練習1.24
未詳,不就和練習1.23一樣嗎
參見下節1.6 Bookstore 程式
1.6 Bookstore 程式
第39集 2:44:55
cout << itemPrevious.isbn() << " 有 " << ctr << " 筆" << endl;
第39集 2:40:20
練習1.24
未詳,不就和練習1.23一樣嗎
參見下節1.6 Bookstore 程式
1.6 Bookstore 程式
第39集 2:44:55
We’ll assume that all the transactions for each ISBN are grouped together in the input.:我們假設每個輸入的ISBN都是被放在一起的
中文版又翻錯了:
我們會假設輸出中每個ISBN的所有交易記錄都被歸成一組。
欄位(field)在這裡仍是變數的意思,只不過在類別之中,為其類別內之一成員,故名成員變數,也叫field,就如MS Word中field是翻成「功能變數」。
We’ll assume that all the transactions for each ISBN are grouped together in the input.:我們假設每個輸入的ISBN都是被放在一起的
中文版又翻錯了:
我們會假設輸出中每個ISBN的所有交易記錄都被歸成一組。
欄位(field)在這裡仍是變數的意思,只不過在類別之中,為其類別內之一成員,故名成員變數,也叫field,就如MS Word中field是翻成「功能變數」。
頁25
第39集 3:4:50 3:19:00
練習1.25
int main() {
Sales_item total; //用來存放運行總和的變數 // variable to hold the running sum
//英文版total、trans這兩個變數的註解就弄倒了,中文版也沒更正!今徑正
/* in this book 1.6. The Bookstore Program,the comments of the two variables "total" and "trans" are inverse.
"Sales_item total; // variable to hold data for the next transaction
dot operator 點號運算子(參見中文版23頁)
頁76
練習2.41
練習2.40
§1.5.1(頁22)
練習1.20
第39集 3:21:40
struct Sales_data {
std::string bookNo;// { "882-33-" };
double revenue; //{ 24.44 };
unsigned soldQ; //{ 1 };
double bookSize; //{ 24.2 };
};
留言