内联成员函数
- 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;
}