zoukankan      html  css  js  c++  java
  • 类中的函数重载

    1. 函数重载回顾

    • 函数重载的本质为相互独立的不同函数
    • C++通过函数名函数参数确定函数调用
    • 无法直接通过函数名得到重载函数的入口地址
    • 函数重载必然发生在同一个作用域中

    2. 类中的函数重载

    类的成员函数可以进行重载,包括

    • 构造函数的重载
    • 普通成员函数的重载
    • 静态成员函数的重载

    注意:函数重载必然发生在同一个作用域中,因此全局函数和类的成员函数无法构成重载。

    #include <stdio.h>
    
    class Test
    {
        int i;
    public:
        Test()
        {
            printf("Test::Test()
    ");
            this->i = 0;
        }
    
        Test(int i)
        {
            printf("Test::Test(int i)
    ");
            this->i = i;
        }
    
        Test(const Test &obj)
        {
            printf("Test(const Test& obj)
    ");
            this->i = obj.i;
        }
    
        static void func()
        {
            printf("void Test::func()
    ");
        }
    
        void func(int i)
        {
            printf("void Test::func(int i), i = %d
    ", i);
        }
    
        int getI()
        {
            return i;
        }
    };
    
    void func()
    {
        printf("void func()
    ");
    }
    
    void func(int i)
    {
        printf("void func(int i), i = %d
    ", i);
    }
    
    int main()
    {
        func();        // void func()
        func(1);       // void func(int i), i = 1
    
        Test t;        // Test::Test()
        Test t1(1);    // Test::Test(int i)
        Test t2(t1);   // Test(const Test& obj)
    
        func();        // void func()
        Test::func();  // void Test::func()
    
        func(2);       // void func(int i), i = 2;
        t1.func(2);    // void Test::func(int i), i = 2
        t1.func();     // void Test::func()
    
        return 0;
    }
    

    重载的意义

    • 通过函数名对函数功能进行提示
    • 通过参数列表对函数用法进行提示
    • 扩展系统中已经存在的函数功能
    #include <stdio.h>
    #include <string.h>
    
    char *strcpy(char *buf, const char *str, unsigned int n)
    {
        return strncpy(buf, str, n);
    }
    
    int main()
    {
        const char *s = "D.T.Software";
        char buf[8] = {0};
    
        strcpy(buf, s, sizeof(buf) - 1);
    
        printf("%s
    ", buf);
    
        return 0;
    }
    

  • 相关阅读:
    telnet发邮件
    怎样接收电子邮件(POP3协议简介)(转载,写的很简洁)
    总结:string,char*,CString,int,WCHAR*之间的相互转换:
    文件查找
    SOAP消息机制简介
    jQuery 万能的选择器 NO.1
    数据库通用操作类
    jQuery (三) 管理jQuery包装集
    WebService Learning
    使用JQuery读取XML文件数据
  • 原文地址:https://www.cnblogs.com/songhe364826110/p/11546160.html
Copyright © 2011-2022 走看看