C++知识整理二

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/m0_37508531/article/details/83962906

前言

  本次总结接上次总结。

重点

  1.指针:*p是值,p是地址:
  指向常量的指针 const int *p; 它告诉编译器,“*p”是常量,不能将它作为左值进行操作;
  常量指针 int x=5; int * const p = &x; 编译器把“p”看作常量地址,所以不能做左值;
  指向常量的常量指针 int x=2; const int * const p = &x; 指针和指针的对象都不能改动。

  2.要输出数组的内容、对数组进行升幂排序、反转数组的内容、复制数组的内容等操作,需要包含头文件<algorithm>;要对数组进行降幂排序和检索,需要包含头文件<functional>

  3.C++提供了两种格式控制方式:一种是使用iso_base类提供的接口;另一种是使用一种称为操控符的特殊函数。不带形式参数的操控符定义在头文件<iostream>中,带形式参数的操控符定义在头文件<iomanip>中,注意:无参数的操控符函数不能带有“()”号。

  4.数据的封装性

私有的数据成员,必须通过公有的成员函数才能使用。

  5.面向对象的程序设计具有抽象、封装、继承和多态性等。对象称作类的一个实例;封装是通过存取权限实现的;不同的对象可以调用相同名称的成员函数,但可导致完全不同的行为的现象称为多态。

  6.函数参数

将对象作为函数参数 :是将实参对象的值传递给形参对象,这种传递是单向的;

void swap(string,string);          //使用string类的对象作为函数参数

void main()
{
	string str1("现在"), str2("过去");        //定义对象str1 str2
	swap(str1,str2);                         //使用传值方式传递str1 str2的数据成员值
}

void swap(string s1, string s2)     //string类的对象s1和s2作为函数参数
{
	string temp=s1;s1=s2;s2=temp;
}

将指向对象的指针作为函数参数,形参是对象指针,实参是对象的地址值。当在函数中改变形参的值时,改变的就是原来实参的值。

void swap(string *,string *);          //使用string类的指针作为函数参数

void main()
{
	string str1("现在"), str2("过去");        //定义对象str1 str2
	swap(&str1,&str2);                         //使用传地址值方式传递str1 str2的地址值
}

void swap(string *s1, string *s2)     //string类的对象指针s1和s2作为函数参数
{
	string temp=*s1;*s1=*s2;*s2=temp;
}

引用作为函数参数:在函数调用时,实参对象名传递给形参对象名,改变形参对象的值就是改变实参对象的值。

void swap(string&,string&);          //使用string类的引用对象作为函数参数

void main()
{
	string str1("现在"), str2("过去");        //定义对象str1 str2
	swap(str1,str2);                         //传递对象的名字:str1 str2          必须使用对象名
}

void swap(string &s1, string &s2)     //string类的引用对象s1和s2作为函数参数
{
	string temp=s1;s1=s2;s2=temp;
}

函数返回值作为函数的参数

  7.函数返回值

  C++函数的返回值类型可以是除数组和函数以外的任何类型。

  返回引用的函数
  返回指针的函数
  返回对象的函数

  8.内联函数
  使用关键字inline说明的函数称为内联函数。除具有循环语句、switch语句的函数不能说明为内联函数外,其他函数都可以说明为内联函数。使用内联函数能加快程序执行速度,但是如果函数体语句多,则会增加程序代码的大小。所以,内联函数应该:语句少,并被频繁调用。

  如果在声明类的同时,在类体内给出成员函数的定义,则默认为内联函数。如:

int GetX()  { return x; }

  则GetX为内联函数。

  9.函数重载
  函数重载的区别有3个:一是参数类型不同,二是参数个数不同,三是const。仅有函数返回值不同是区分不了重载函数的。

  10.静态联编和动态联编

  动态联编(迟后联编)直到程序运行时才能确定调用哪个函数;支持的多态性称为运行时的多态性,由虚函数支持。
  静态联编(先期联编)编译时进行的;支持的多态性称为编译时的多态性。

总结

  先整理这么多吧,都是当时考试的时候重点复习的,希望明年这个时候可以帮到大家,我还会继续总结的。

猜你喜欢

转载自blog.csdn.net/m0_37508531/article/details/83962906
今日推荐