c++ 重写 重构 重载

特性重写(Override)重构(Refactoring)重载(Overloading)
定义在派生类中提供与基类同名同参数的新方法实现改进代码内部结构但不改变外在行为在同一作用域内创建多个参数列表不同的同名函数
目的实现多态,改变或扩展基类行为提高代码可读性、可维护性根据不同参数提供不同功能
使用场景类继承关系中任何需要改进代码的地方提供函数的多个版本
相同点涉及方法的实现可能涉及方法的修改涉及方法的实现
不同点需要继承关系不改变程序外在行为可继承可不继承不需要继承关系,参数不同

1 重载

// python 语法糖
def buildUrl(uri, params=None):
    if params :
    else:
        
    
// c++ 重载 写两个同名函数不同参数个数

string Ok:: buildUrl(const std::string& uri, const std::map<std::string, std::string>& params) {
    /*
       不同参数个数 不能用python =None过滤. 能用重载 或 template<typename... Args>模板语法
    */
    std::string url = _host + uri;

    if (!params.empty()) {
        std::string query;
        for (const auto& param : params) {
            query += param.first + "=" + param.second + "&";
        }
        query = query.substr(0, query.length() - 1);  // 去除最后一个多余的"&"
        url += "?" + query;
    }
    return url;
}
std::string Ok::buildUrl(const std::string& uri) {
    return _host + uri;
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值