类和对象:内联成员函数和重载成员函数

内联成员函数

  • inline + 成员函数
  • 整个函数体出现在类定义内部
class B { 
	inline void func1(); 
	void func2() {   }; 
}; 
void B::func1() { }

成员函数的重载及参数缺省

  • 重载成员函数
  • 成员函数 -- 带缺省参数
#include <iostream> 
using namespace std; 
class Location {   
private:
	int x, y;  

public:           
	void init( int x=0 , int y = 0 ); //x,y缺省为0    
	void valueX( int val ) { x = val ; }     
	int valueX() { return x; }
};

void Location::init(int X, int Y) { x = X;  y = Y; } 

int main() { 
	Location A;  
	A.init(5);  //x=5, y缺省
	A.valueX(5);  //调用第1个valueX
	cout << A.valueX();  //调用第2个valueX
	return 0; 
}
  • 使用缺省参数要注意避免有函数重载时的二义性
#include <iostream> 
using namespace std; 
class Location {   
private:
	int x, y;  

public:           
	void init( int x=0 , int y = 0 );     
	void valueX( int val= 0) { x = val ; }     //val缺省为0
	int valueX() { return x; }
};
void Location::init(int X, int Y) { x = X;  y = Y; } 
int main() { 
        Location A; A.valueX();     //错误, 编译器无法判断调用哪个valueX, 可能是第1个缺省, 也可能是第2个
	return 0; 
}
posted @ 2020-10-19 13:58  rookieveteran  阅读(106)  评论(0编辑  收藏  举报