處理類型
類型別名
類型別名是一個名字,它是某種類型的同義詞。
- 傳統使用方法: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;
}
頭文件即使還沒有被包含在任何其他頭文件中,也應該設置保護符,只需要習慣性加上即可