C++中的const与函数重载详解

需积分: 10 1 下载量 5 浏览量 更新于2024-08-19 收藏 2.77MB PPT 举报
"这篇资源是关于C++编程的入门课件,主要讲解了`const`关键字的使用以及函数的两种特性:具有缺省参数值的函数和函数的重载。" 在C++中,`const`关键字用于声明常量或者限定函数的行为。以下是关于`const`的关键知识点: 1. 常量对象:`const Time t1;` 定义了一个名为`t1`的常量对象,它的值在生命周期内不能被修改。 2. 常成员函数:`void Time::fun() const` 表示`fun`是`Time`类的一个常成员函数,它不能修改类的数据成员,保证了函数执行过程中对象状态的不变性。 3. 常指针:`Time * const p;` 定义了一个指向`Time`对象的常指针,`p`的值(即它所指向的对象)不能改变,但所指向的对象的值可以改变。 4. 指向常对象的指针:`const Time *p;` `p`是一个指针,它可以改变指向,但所指向的`Time`对象的值不能通过指针来修改。 接下来,我们来看函数的两个特性: **具有缺省参数值的函数:** 在C++中,函数可以有缺省参数,如`int fac(int n=2)`。当调用函数时,如果未提供参数,就会使用缺省值。例如`fac()`会使用默认的2作为参数,而`fac(6)`则会使用传入的6。在`area`函数的例子中,我们可以看到如何通过缺省参数简化调用,并且注意缺省参数的设置规则: - 缺省参数必须从右到左设定。 - 函数原型可以不写变量名,如`float v(float, float=10, float=20);` - 一旦在函数原型中设定了缺省值,后续定义不能再设定。 **函数的重载:** 函数重载允许在同一作用域内有多个同名函数,但它们必须具有不同的参数列表(通常是不同的参数个数或类型)。重载函数在调用时由编译器根据传入的实参类型和数量来决定调用哪个函数。例如,`fun`函数被重载了两次,一次接受两个整数参数,另一次只接受一个整数参数。重载不考虑返回类型,因为返回类型不影响函数的调用。 错误示例:如果在函数原型中设定了缺省值,后续定义中不应再次设定,否则会导致编译错误。此外,仅仅返回类型不同而参数列表相同是不允许的,因为这不足以区分不同的函数。 这篇课件提供了关于C++中`const`关键字的基础应用以及函数的缺省参数和重载这两个重要概念的讲解,是学习C++初学者的良好参考资料。