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,否则可能存在野指针问题。