구성원 함수 와 일반 구성원 함수 의 호출 을 분석 하 다.

Coordinate 클래스 에는 디 스 플레이()멤버 함수 와 디 스 플레이()const 일반 멤버 함수 가 있 습 니 다.코드 는 다음 과 같 습 니 다.

class Coordinate{
public:
 Coordinate(int x,int y);
 void Display() const;
 void Display();
private:
 int m_iX;
 int m_iY;
};

#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;
}
디 스 플레이()멤버 함수 와 디 스 플레이()const 일반 멤버 함 수 는 서로 다시 불 러 옵 니 다.만약 에 우리 가 아래 와 같이 이 방법 을 호출 하면 어떤 것 을 호출 합 니까?

#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 를 추가 하지 않 아 도 일반 구성원 함 수 를 호출 할 수 있 습 니 다.

class Coordinate{
public:
 Coordinate(int x,int y);
 void Display() const;
private:
 int m_iX;
 int m_iY;
};

#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;
}

#include <iostream>
#include "Coordinate.h"
using namespace std;

int main(){
  Coordinate coor(1, 3);
 coor.Display();
 system("pause");
 return 0;
}

이상 의 이 분석 멤버 함수 와 일반 멤버 함수 의 호출 은 바로 편집장 이 여러분 에 게 공유 한 모든 내용 입 니 다.여러분 에 게 참고 가 되 고 여러분 들 이 저 희 를 많이 응원 해 주 셨 으 면 좋 겠 습 니 다.

좋은 웹페이지 즐겨찾기