[英]Call of Overloaded Functions is Ambiguous
我得到重載函數的錯誤調用是模棱兩可的,並且我理解這是因為編譯器無法區分它們,但是有沒有辦法在保持相同參數的情況下解決此問題? 我必須使用下面提供的聲明,如果每次遇到此錯誤,我都將無法使用它們,這使我感到困惑。
我已經縮短了代碼,以顯示構成問題的構造函數。
ErrorMessage.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
}
ErrorMessage.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_;
}
}
只需刪除不帶參數的構造函數。 第二個構造函數已經完成了第一個構造函數的所有工作。
如果收到nullptr,它將對其進行測試並設置局部變量;否則,它將繼續其邏輯。 第一個構造函數是完全多余的。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.