ProDeveloperTutorial.com

教程和编程解决方案
菜单
  • Shell脚本
  • 系统设计
  • Linux系统编程
  • 4g LTE
  • 编码问题
  • C
  • C ++
  • DSA
  • GIT

C ++第19章:常量成员函数和重载成员函数,在C ++中是可变的

前开发者教程 2020年1月27日

在本教程中,我们将研究

  1. 恒定成员函数
  2. 可变关键字
  3. 重载成员函数

 

1. C ++中的常量成员函数

 

以下是常成员函数的几点

  1. “ const”是用于声明常量成员函数的关键字。
  2. 一旦成员函数声明为常量,就无法修改该函数中的数据成员值。
  3. 我们在不需要意外修改数据的功能中使用它。

 

例:

 

#include <iostream>
using namespace std;

class MyClass
{

    int num;

public:

  void myFunc() const
  {
      //  error: cannot assign to non-static data member within const member function 'myFunc
      //num ++;
      cout<<"In const function"<<endl;
  }
};


int main(void)
{

    static MyClass obj;
    obj.myFunc();

    return 0;
}

输出:

 

In const function

2. C ++中的可变数据成员

 

以下是有关“可变”关键字的几点说明。

  1. “ mutable”关键字仅适用于数据成员。
  2. 在某些情况下,我们需要在常量成员函数内部修改数据。
  3. 在这种情况下,我们使数据成员可变,以便可以在常量成员函数中对其进行修改。

 

例:

 

#include <iostream>
using namespace std;

class MyClass
{

    mutable int iNum;
    int num;

public:

  void myFunc() const
  {
      //  error: cannot assign to non-static data member within const member function 'myFunc
      //num ++;

      iNum++; // no error

      cout<<"In const function"<<endl;
  }
};

int main(void)
{

    static MyClass obj;
    obj.myFunc();

    return 0;
}

输出:

 

In const function

 

3.重载C ++中的成员函数

  1. 函数重载是具有相同名称但参数不同的两个或多个函数的功能。
  2. 这是C ++的多态性特征

 

例:

 

#include <iostream>
using namespace std;

void fun(int num)
{
    cout<<"Int function"<<endl;
}

void fun(double num)
{
    cout<<"double function"<<endl;
}

void fun(string num)
{
    cout<<"String function"<<endl;
}

int main(void)
{

    fun(10);

    fun(12.34);

    fun("String");

    return 0;

}

输出:

 

Int function

double function

String function

 

该网站上可用的教程列表:

C编程20+章C ++编程80+章
100多个编码问题数据结构和算法85+章
系统设计20+章Shell脚本编写12章
4g LTE 60+章节最常见的编码问题
5G NR 50+章Linux系统编程20+章
分享
电子邮件
鸣叫
领英
Reddit
绊倒
Pinterest的
上一篇文章
下一篇

关于作者

前开发者教程

每天我们都会讨论竞争性编程问题,请加入我们的网站:   电报频道

ProDeveloperTutorial.com

教程和编程解决方案
版权© 2020 ProDeveloperTutorial.com
从以下课程获得热门课程: 教育性的
<form id="cKXDkI3" class="c8Yy1YK"></form>




    <dd id="Cf6bO3C"><nav id="wFVXeJm" class="wIwHwwC"><tbody id="Xl48Xxo" class="XqolVGK"></tbody></nav></dd><sup id="kjVRuxj" class="kZuoh38"><mark class="wRbIjiQ"><legend class="RESzkD3"><aside id="lBf1G05"></aside></legend></mark></sup>

    <basefont id="brZBsVc" class="bVWQw7x"><noscript id="ZWOVbAE"></noscript></basefont>


    <button class="iNv6uJn"><figure class="YD6q4IO"><mark id="kVGbzg7"></mark></figure></button>


    <b class="iROvR93"><li class="iWQ3SMH"><figcaption class="lNipFxG"></figcaption></li></b>