前面对C++的HelloWorld程序进行了解析,那么现在就开始了解C++相较于C的新特性吧:
(1)标准输入输出:cin、cout、cerr(标准出错输出)、clog(cerr的缓冲形式);
(2)const定义常变量:宏定义其实是字符置换,不占用存储单元,而const定义常量,具有变量属性,有数据类型,占用存储单元,有地址;
(3)函数原型声明:强制性原型声明;
(4)函数重载:C++允许在同一作用域中定义多个同名函数,通过参数类型和参数个数对其加以区分来实现不同的功能;
(5)函数模板:建立一个通用函数,其函数类型和形参类型不具体指定,用一个虚拟的类型来代表:
<span style="font-family:Times New Roman;font-size:14px;">#include <iostream> using namespace std; template<typename T> T max(T a,T b,T c) { if(b>a) a=b; if(c>a) a=c; return a; } int main() { int ia=0,ib=5,ic=8; double da=0.0,db=5.0,dc=8.2; cout<<max(ia,ib,ic)<<endl; cout<<max(da,db,dc)<<endl; return 0; }</span>
(6)默认参数的函数:可指定形参有默认值;
(7)变量的引用:为变量起别名,更加方便的使用变量,不能建立void和数组类型的引用,不能定义指向引用类型的指针变量
1.void &a=9;//错误
2.char c[6]="hello";char &rc[6]=c;//错误
3.int a=3;int &b=a;int *p=&b;//正确
int & *p=&a;//错误
4.int i=5;int *p = &i;int* &pt=p;//正确
5.int i=5;const int &a=i;//引用的值将无法修改,但变量本身可以修改,变量修改后引用的值将随之改变
6.int i=5; const &a=i+3;等价于int i=5;int temp=i+3;const int &a=temp;
(8)内置函数:在编译时将调用函数的代码嵌入到主函数中以提高执行效率,函数用inline修饰;
(9)动态分配撤销内存运算符new和delete:Student *p;p = new Student;delete p;//Student为结构体。