《C++Primer》讀書筆記(二)C++基礎(下)

處理類型

類型別名

類型別名是一個名字,它是某種類型的同義詞。
- 傳統使用方法:typedef

typedef double wages; // wages是double的同義詞
  • 新標準:使用別名聲明
using SI = Sales_items; // SI 是自定義類型Sales_item的同義詞

(1)指針、常量與類型別名

typedef char *pstring;
const pstring cstr=0; // cstr是指向char的常量指針
const pstring *ps; // ps是一個指針,它的對象是指向char的常量指針

auto類型說明符

由編譯器分析表達式所屬的類型

auto item =val1+val2; //item初始化爲val1和val2相加的結果
  • 在聲明多個變量時:一條聲明語句只能有一個基本數據類型
auto i=0,*p=&i; //正確
auto sz=0,pi=3.14; //錯誤

decltype類型提示符

decltype(f()) sum=x; // sum 的類型就是函數f的返回類型

(1)decltype和引用

int i=42,*p=&i,&r=i;
decltype(r+0) b; // 正確,b是一個未初始化int
decltype(*p) c; // 錯誤:c是int&,必須初始化

自定義數據結構

(1)定義sales_data類型

struct Sale_data{
    std::String bookNo;
    unsigned units_sold=0;
    double revenue=0.0;
}

使用Sales-data類

編寫自己的頭文件

(1)預處理器
- #include 預處理功能,找到頭文件並替換
- #define 將一個名字設定爲預處理變量,#ifdef(#ifndef)和#endif

#ifndef SALES_DATA_H
#define SALES_DATA_H
#include <string>
struct Sales_data{
    std::string bookNo;
    unsigned units_sold=0;
    double revenue=0.0;
}

頭文件即使還沒有被包含在任何其他頭文件中,也應該設置保護符,只需要習慣性加上即可

發佈了34 篇原創文章 · 獲贊 5 · 訪問量 3萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章