1.命名空間域是隨標準C++而引入的。它相當於一個更加靈活的文件域(全局域),可以用花括號把文件的一部分括起來,並以關鍵字namespace開頭給它起一個名字:
namespace name1
{
int a = 0;
}
namespace name2
{
int a = 1;
}
name1::a = 3
name2::a = 4;
2.名字空間域解決全局命名衝突的問題.
標準C++庫中的所有組件都是在一個被稱爲std的名字空間中聲明和定義的。在採用標準C++的平臺上使用標準C++庫中的組件,只要寫一個using指示符:
using namespace std;就可以直接使用標準C++庫中的所有成員。
或者 std::成員 的方式也可以使用C++庫裏的成員。
#include<iostream>using namespace std;//std是C++標準庫的名字空間
int main ()
{
std::cout<<"hello world"<<std::endl; return 0;
}
3.C++基本的輸入輸出流
cout是標準輸出流對象,<< 是輸出操作符;
cin是標準輸入流對象,>>是輸入操作符;
endl是換行操作符;
他們都屬於C++標準庫,所以都在std的名字空間裏面。
#include<iostream>
using namespace std;
int main ()
{
int i1 = 1;
double d1 = 2.22;
cout<<"c++ type:" <<"int->"<< i1<<" double->"<< d1<<endl ;
cout<<"please input int and double:" ;
cin>>i1 >>d1;
cout<<"c++ type:" <<"int->"<< i1<<" double->"<< d1<<endl ;
4.重載(C++爲什麼支持重載?)
在同一作用域類,一組函數的函數名相同,參數列表不同(個數不同/類型不同),返回值可同可不同
void fun(int a,int,b);
void fun(char a, char b);
void fun (int a,int b, int c);
5.C++缺省參數(全缺或者半缺,半缺缺省右邊)
// 全缺省參數
int Add1 (int a = 0, int b = 0)
{
return a + b;
}
// 半缺省參數
int Add2 (int a, int b = 0)
{
return a + b;
}
void Test ()
{
Add1();
Add1(1);
Add1(1,1);
Add2(2);
Add2(2,2);
}
6.指針和引用(概念、使用方法、做參數、做返回值的作用,指針和引用的區別)
引用只是變量的別名,就像人的官名和小名,可以有多個。
1) 引用只能在定義時初始化一次,之後不能改變指向其它變量(從一而忠);指針變量的值可變。
2) 引用必須指向有效的變量,指針可以爲空。
3) sizeof指針對象和引用對象的意不義一樣,sizeof引用得到的變量的大小,指針指是對象地址的大小。
4} 指針和引用自增(++)自減(--)意義不一樣。
5) 相對而言,引用比指針更安全。
總結一下:指針比引用更靈活,但是也更危險。使用時一定要注意檢查指針是否爲空,free之後指針最好置0,否則可能存在野指針問題。