小编Gla*_*laz的帖子

重载函数的调用不明确

我收到错误调用重载函数不明确,我明白这是因为编译器无法区分它们,但是有没有办法在保持相同参数的同时解决这个问题?我必须使用下面提供的声明,如果每次都遇到此错误,我会很困惑如何使用它们。

我已经缩短了代码以显示提出问题的构造函数。

错误消息.h

class ErrorMessage {
        char* message_; //pointer that holds the address of the message stored in current object
    public:
        ErrorMessage();
        explicit ErrorMessage(const char* errorMessage = nullptr); //receive address of a C-style nullterminate string holding an error message
}
Run Code Online (Sandbox Code Playgroud)

错误消息.cpp

命名空间 sict {

ErrorMessage::ErrorMessage() {
    message_ = nullptr;
}

ErrorMessage::ErrorMessage(const char* errorMessage) {
    if(errorMessage == nullptr) {
        message_ = nullptr;
    }
    else {
        message(errorMessage);
    }
    const char* ErrorMessage::message() const {
        return message_;
    }
}
Run Code Online (Sandbox Code Playgroud)

c++ overloading

-1
推荐指数
1
解决办法
965
查看次数

标签 统计

c++ ×1

overloading ×1