好日子所有類型要求:傳遞字符串作爲參數傳遞給函數
注:我在C++一個初學者,自學我走,還道歉,如果這是一個重複的,但我還沒有找到一個例如/答案/教程來回答問題,可能我只是不明白它。
我有一個標頭和實現的函數,定義如下:
頭
#ifndef RETURNOBJECT_H
#define RETURNOBJECT_H
#include <QtCore>
#include "enums.h"
class ReturnObject
{
public:
ReturnObject();
ReturnObject(ReturnCode enum_code, const char data);
const char getData();
ReturnCode getCode();
private:
ReturnCode e_code;
const char data_string;
};
#endif // RETURNOBJECT_H
實施
#include "returnobject.h"
ReturnObject::ReturnObject(){
data_string="WARN";
}
ReturnObject::ReturnObject(ReturnCode enum_code, const char data)
: e_code(enum_code)
, data_string(data)
{}
ResultCode ReturnCode::getCode()
{
return e_code;
}
const char ReturnObject::getData()
{
return data_string;
}
請注意,我不熟悉像我一樣,指針等應該是,但我對每個概念都有一個公正的理解。
目的:
該目的是通過一個自定義類函數創建,存儲在類中,並返回到父類。該對象包含一個自定義的exec()
返回值和可能的輸出來自該類的輸出消息/數據(由於受限制的限制,例如QDialog.setResult()
只允許exec()
返回1或0的結果,我創建了這個)。
版本/問題/疑問
調用類:
Private
ReturnObject _ReturnObject;
_ReturnObject = new ReturnObject(ReturnCode::LoginDialog_EmptyLoginPass, "");
提供下列錯誤:
/home/cx/qt-projects/project-i/loginstatusdialog.cpp:21: error: invalid conversion from 'const char*' to 'char' [-fpermissive]
_ReturnObject = new ReturnObject(ReturnCode::LoginDialog_EmptyLoginPass, "");
^
因此,我從錯誤的結論是第二個參數 - >""
或data
是問題,因爲我最有可能不正確地在構造函數中罰這個數據類型。
我應該如何在構造函數中定義這個?,而不是""
使用哪種數據類型?據我所知,它具有const
屬性。
我曾嘗試:
我一直在使用char
,const char
,QString
兩者給出一個類似的錯誤嘗試。
有什麼建議嗎?
編譯器輸出
的const char * data
../project-i/loginstatusdialog.cpp: In constructor 'LoginStatusDialog::LoginStatusDialog(QString, QString, QString*, QWidget*)':
../project-i/loginstatusdialog.cpp:21:44: error: use of deleted function 'ReturnObject& ReturnObject::operator=(ReturnObject&&)'
_Return_Object = ReturnObject(1, "");
^
In file included from ../project-i/loginstatusdialog.h:10:0,
from ../project-i/loginstatusdialog.cpp:1:
../project-i/returnobject.h:7:7: note: 'ReturnObject& ReturnObject::operator=(ReturnObject&&)' is implicitly deleted because the default definition would be ill-formed:
class ReturnObject
^~~~~~~~~~~~
仔細閱讀你的構造函數定義,你有一個錯字。 –
另外'_ReturnObject'是實現保留標識符,不要使用它。 –
@BaummitAugen我很抱歉,我沒有關注。你是否可能提及可能性,我忘記將'*'添加到'const char * data'中,如果是,那麼我沒有忘記,剛纔從給出的答案中知道它的存在和意義(因此我還是C++的新手),如果沒有,請幫助我澄清錯誤。謝謝 – KGCybeX