C++ Primer拾遺
1 程序 = 算法 + 數據
2 結構化編程
C 面向過程
強調算法
3 面向對象編程
C++ 面向對象 強調數據
類是一種規范,描述數據的格式
類 = 數據 + 算法 + 面向對象三大特性(封裝、繼承、多態)
4 泛型編程
獨立於數據類型 強調算法
5 sizeof
sizeof是運算符,對類型一定需要加括號,對變量括號可選
例如:
long long lnum;
cout << sizeof(int) << endl;
cout << sizeof lnum << endl;// 可以不是用括號
cout << sizeof (lnum) << endl;
6 大括號初始化器
//C++98:
int n1 = {24};// 給n1賦值為24
//C++11:
int n2{24};// 等號也可以省略
int n3{};// 不給值,將初始化為0
7 指針聲明
int *p1;// C中,強調*p1的類型是int
int* p2;// C++中,強調p2的類型是int*
int * p3;// 推薦聲明方式
8 延時函數
clock()返回程序開始執行後的系統時間,
有兩個問題:
1 clock()返回值的單位不一定是秒;
解決方法:
CLOCKS_PER_SEC,每秒鐘包含的系統時間單位數。
2 其返回值類型有可能是long也有可能是unsigned long,有操作系統覺得;
解決方法:
clock_t類型,系統將其定義為使用的類型。
#include
#include
void main()
{
int sec;
printf("Enter the delay time in seconds:");
scanf("%d", &sec);
clock_t delay = sec * CLOCKS_PER_SEC;
printf("start...\a\n");
clock_t start = clock();
while(clock() - start < delay);
printf("done\a\n");
}
程序將秒轉換成系統時間單位,避免每次循環都將系統時間轉換為秒,效率更高。
9 C++11的類初始化
class Classy
{
int m_mem1 = 10;
};