【期末复习】c++知识点大回顾,八篇文章让你永不破防(一)(建议收藏)

c++期末复习知识点最全整理

目录总览

?? c++知识点复习最全整理(一)??

?? c++知识点复习最全整理(二)??

?? c++知识点复习最全整理(三)??

?? c++知识点复习最全整理(四)??

?? c++知识点复习最全整理(五)??

?? c++知识点复习最全整理(六)??

?? c++知识点复习最全整理(七)??

?? c++知识点复习最全整理(八)??

一、?介绍对象技术

1.简单输入输出

2.c++标准库

3.内联函数

4.c++关键字

5.引用和引用形参

6.参数传递

7.一元作用域运算符::

8.函数重载

9.函数模板


一、第15章 介绍对象技术

1.简单输入输出

//求a和b两个数之和。
// 求两数之和 ? ? ? ? ? ? ? ? ? ? (本行是注释行)
#include <iostream> ? ? ? ? ?//预处理命令
using namespace std; ? ? ? ? //使用命名空间std 
int main( ) ? ? ? ? ? ? ? ? ? ? ? ?//主函数首部
{ ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? //函数体开始
 ? ? int a,b,sum; ? ? ? ? ? ? ? ? //定义变量
 ? ? cin>>a>>b; ? ? ? ? ? ? ? ?//输入语句
 ? ? sum = a + b; ? ? ? ? ? ? ? ? ? //赋值语句
 ? ? cout<<″a + b =″<<sum<<endl; ? ? ? ?//输出语句
 ? ? return 0; ? ?//如程序正常结束,向操作系统返回一个零值
} ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?//函数结束

注意: cin和cout都在命名空间std中,如果要直接使用,需要声明命名空间

2.c++标准库

C++标准库头文件 :省略了后缀.h

常用C++标准库头文件 : 标准输入输出函数的原型 : 数学库函数的原型 : 时间及日期函数原型以及类 : 测试字符属性函数原型 : 字符串处理函数的原型 : 文件操作函数原型 : 包含string类的定义

其实引用头文件还可以偷懒:

#include<bits/stdc++.h>//万能头文件  几乎包含所有的头文件

3.内联函数

在函数定义前面加关键字inline,相当于添加了函数的代码副本,再使用函数时,直接调用,减少了调用时间,相当于以空间换时间。 定义 : 在定义函数前面添加inline

inline void display( int a )
{
}
  • inline 命令只是建议性的,不是强制性的。

  • 当声明了inline的函数中有循环语句、switch语句或有递归定义,则函数不会进行代码置换。即此时inline 无效。

  • inline只用在函数代码很短的情形。

  • 如果违背了上述注意事项中的任一项,编译程序就会无视关键字inline的存在,像处理一般函数一样处理,不生成扩展代码。

因此,只有很简单而使用频率很高的函数才被说明为内联函数。

内联函数会扩大目标代码,使用时要谨慎。

4.c++关键字

在程序中要避免使用与关键字相同变量函数

5.引用和引用形参

int ?&b = a; ? ? //声明b是a的引用(别名)
  • b并没有重新在内存中开辟单元,只是引用a的单元。

  • a与b在内存中占用同一地址,即同一地址两个名字。

  • &不是地址运算符,而是将b的类型声明为int &

  • 引用必须在声明的同时进行初始化

  • 指针有自己的变量单元,可以被改变,引用一旦与某个变量联系起来,就将一直效忠于它,不得再作为其它变量的别名。

  • 指针是通过地址间接访问某个变量,而引用是通过别名直接访问某个变量

6.参数传递

可定义参数有默认值的函数,如果不传入参数,函数默认使用默认值,如果传入参数,函数使用传入的值。

  • 默认参数必须写在一般参数的后面

    void sum(int a,int b=1){ }//正确
    void sum(int b=1,int a){ }//错误

7.一元作用域运算符::

  • 作用:

局部作用域存在的变量和全局作用域存在的变量同名时,想要访问全局作用域的变量,就需要这个符号了。

下面代码示例:

#include<bits/stdc++.h>
using namespace std;
int n=55;
int main()
{
    int n=5;
    cout<<::n<<'
';
    return 0; 
} 

//结果
55

当局部作用域有与全局变量同名的变量,当访问这个变量时,默认访问局部作用域的变量

如果要访问同同名的全局变量,需要加一元作用域运算符

8.函数重载

同名函数满足(必须是同名函数才能重载),const也可以作为重载函数的区分呀(这个到后面的更新中会说明)

以下三个特点只要满足其中之一就是重载函数,但必须保持重载函数同名

  • 形参个数不同

  • 形参类型不同

  • 形参顺序不同

9.函数模板

函数处理的功能基本上一样时,但是参数的类型不一样,就会很苦恼,这时候函数模板就派上用场了。

语法格式:

template <class T>//T代表一个待定的类型,会改变为传入的参数的类型
返回值类型 函数名(参数列表)
{
函数体
}
  • 应用场景:

    除函数处理的数据类型不同外,其它均相同

    函数体相同,参数个数相同,可定义函数模板

下面定义了求最大值的函数模板,可以参考一下。

#include <iostream>
using ?namespace ?std;
template ?< typename T > ? // 模板声明:T是虚拟的类型
T ?max( T a, T ?b, T c) ? ? ? ? ? ?//定义通用的函数
{ 
 ? ?T ?x=a;
 ? ?if (x<b) x=b;
 ? ?if (x<c) x=c;
 ? ?return x;
}
void main()
{ ? 
 ? ?int ? ? i1=2, ? ?i2=3, ? ?i3=5,  ? i;
 ? ?double ?d1=1.5, ?d2=0.5, ?d3=0.7,  d;
 ? ?long ? ?g1=123, ?g2=234, ?g3=345, ?g;
 ? ?i=max(i1, i2, i3); ? ?//  T 就是 int
 ? ?d=max(d1,d2, d3); ? ? //  T 就是 double
 ? ?g=max(g1,g2, g3); ? ? //  T 就是 long
 ? ?cout<<"i="<<i<<endl;
 ? ?cout<<"d="<<d<<endl;
 ? ?cout<<"g="<<g<<endl;
}
?

版权声明:本文为m0_67401920原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。