zoukankan      html  css  js  c++  java
  • 类和对象:内联成员函数和重载成员函数

    内联成员函数

    • 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; 
    }
    
  • 相关阅读:
    sys模块
    os模块
    datetime模块
    time模块

    random模块
    python文件两种用途
    模块的搜索路径
    如何修改cnblogs的文本编辑器
    socket状态
  • 原文地址:https://www.cnblogs.com/rookieveteran/p/13839918.html
Copyright © 2011-2022 走看看