第二章 變數和基本型別 2 6自定義資料結構

2021-10-18 04:03:42 字數 1696 閱讀 1044

資料結構是把一組相關的資料元素組織起來然後使用它們的策略和方法。

struct sales_data

;

別忘記在類定義的最後加上分號。

類資料成員 (data member)

類的資料成員定義了類的物件的具體內容,每個物件都有自己的一套資料拷貝。

可以為資料成員提供乙個類內初始值 (in-class initializer) 。建立物件時,類內初始值用於初始化資料成員,沒有類內初始值的成員將被預設初始化。

寫一段程式實現求兩個交易相加結果的功能。程式的輸入是兩條交易記錄

0-201-78345-x 3 20.00

0-201-78345-x 6 25.00

每筆交易記錄著圖書的 isbn 編號、售出數量和售出單價

新增兩個 sales_data 物件

sales_data data1, data2;
sales_data 物件讀入資料

讀入一筆交易

double price =0;

// 書的單價,用於計算銷售收入

// 讀入第 1 筆交易: isbn、銷售數量、單價

std::cin >> data1.bookno >> data1.units_sold >> price;

// 計算銷售收入

data1.revenue = data1.units_sold * price;

讀入第 2 筆交易

std::cin >> data2.bookno >> data2.units_sold >> price;

// 計算銷售收入

data1.revenue = data2.units_sold * price;

輸出兩個 sales_data 物件的和

檢查兩筆交易涉及的 isbn 編號是否相同,若相同輸出他們的和,否則輸出報錯資訊。

if

(data1.bookno == data2.bookno)

else

標頭檔案通常包含那些只能被定義一次的實體,如類、const 和 constexpr 變數等。標頭檔案也經常用到其他標頭檔案的功能。

預處理器概述

確保標頭檔案多次包含仍能安全工作的常用技術是預處理器 (preprocessor),更具體的是使用標頭檔案保護符(header guard)。

預處理變數有兩種狀態:已定義和未定義。

#define指令把乙個名字設定為預處理變數,#ifdef當且僅當變數為已定義時為真,#ifndef當且僅當變數未定義時為真。一旦檢測結果為真,則執行後續操作直至遇到#endif指令為止。

#ifndef sales_data_h

#define sales_data_h

#include..

.#endif

整個程式中的預處理變數包括標頭檔案保護符必須唯一,通常的做法是基於標頭檔案中類的名字來構建保護符的名字,同時一般預處理變數的名字全部大寫。

第二章 變數和基本型別

第二章 變數和基本型別 1 基本內建型別 1 有效數字 float 6位 double 10位 2 符號位 使用一位符號位的表示方式的8位signed整型取值是 128到127 3 越界賦值 取值數目求模 2 字面值常量 1 無符號長整型 1024ul 2 字串 自動在末尾新增乙個空字元 3 變數 ...

第二章 變數和基本型別

識別符號 運算子 宣告符 2.3 復合型別 基於其他型別定義的型別 1.引用 定義引用時,程式把引用和它的初始值繫結 bind 在一起,而不是將初始值拷貝給引用。一旦初始化完成,引用將和他的初始值一直繫結在一起,所以無法令引用重新繫結到另外乙個物件,所以引用必須初始化 2.指標 指標本身是乙個物件,...

第二章 變數和基本型別

切勿混用帶符號數和無符號數 include using namespace std int main 輸出的結果一直都是no,所以不可混用,請注意size 返回的是size type型別,而該型別也是unsigned的。只有內建型別存在字面值,字面值常量的值是不能修改的 它存放在 段中 內建型別的全...