gpt4 book ai didi

浅析成员函数和常成员函数的调用

转载 作者:qq735679552 更新时间:2022-09-27 22:32:09 25 4
gpt4 key购买 nike

CFSDN坚持开源创造价值,我们致力于搭建一个资源共享平台,让每一个IT人在这里找到属于你的精彩世界.

这篇CFSDN的博客文章浅析成员函数和常成员函数的调用由作者收集整理,如果你对这篇文章有兴趣,记得点赞哟.

在Coordinate类中,有一个Display()成员函数和一个Display() const常成员函数,代码如下 。

?
1
2
3
4
5
6
7
8
9
class Coordinate{
public :
  Coordinate( int x, int y);
  void Display() const ;
  void Display();
private :
  int m_iX;
  int m_iY;
};
?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#include <iostream>
#include "Coordinate.h"
using namespace std;
 
Coordinate::Coordinate( int x, int y){
  this ->m_iX = x;
  this ->m_iY = y;
}
void Coordinate::Display() const {
  cout << "Display() const" << endl;
}
 
void Coordinate::Display() {
  cout << "Display()" << endl;
}

Display()成员函数和一个Display() const常成员函数是互为重载的,那么如果我们直接像下面这样调用该方法,会调用的是哪个呢?

?
1
2
3
4
5
6
7
8
9
10
#include <iostream>
#include "Coordinate.h"
using namespace std;
 
int main(){
  Coordinate coor(1, 3);
  coor.Display();
  system ( "pause" );
  return 0;
}

那么运行下程序来看看结果 。

浅析成员函数和常成员函数的调用

程序调用的是没有用const修饰的成员的函数,不是说Display()成员函数和一个Display() const常成员函数是互为重载么,那么我们要如何才能让程序调用const修饰的成员函数呢?

其实很简单,只需要在声明的时候加上const就行.

浅析成员函数和常成员函数的调用

如果在类中如果只有一个常成员函数的话,声明的时候可以不加上const也是可以调用常成员函数的, 。

?
1
2
3
4
5
6
7
8
class Coordinate{
public :
  Coordinate( int x, int y);
  void Display() const ;
private :
  int m_iX;
  int m_iY;
};
?
1
2
3
4
5
6
7
8
9
10
11
#include <iostream>
#include "Coordinate.h"
using namespace std;
 
Coordinate::Coordinate( int x, int y){
  this ->m_iX = x;
  this ->m_iY = y;
}
void Coordinate::Display() const {
  cout << "Display() const" << endl;
}
?
1
2
3
4
5
6
7
8
9
10
#include <iostream>
#include "Coordinate.h"
using namespace std;
 
int main(){
   Coordinate coor(1, 3);
  coor.Display();
  system ( "pause" );
  return 0;
}

浅析成员函数和常成员函数的调用

以上这篇浅析成员函数和常成员函数的调用就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持我.

最后此篇关于浅析成员函数和常成员函数的调用的文章就讲到这里了,如果你想了解更多关于浅析成员函数和常成员函数的调用的内容请搜索CFSDN的文章或继续浏览相关文章,希望大家以后支持我的博客! 。

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com