Для начала код этого самого класса:
//Строковый
class NString{
public:
NString(QString Value = "") {IsNull(Value); this->data._id = -1; this->data._constvalue = false; this->data._name = "";}
qint32 ID() const {return this->data._id;}
void setID(qint32 ID) {this->data._id = ID;}
bool ConstValue() const {return this->data._constvalue;}
void setConstValue(bool ConstValue) {this->data._constvalue = ConstValue;}
QString Name() const {return this->data._name;}
void setName(QString Name) {this->data._name = IsNull(Name);}
void setValue(QString Value) {this->data._value = IsNull(Value);}
QString Value() const {return this->data._value;}
operator QString() {return this->Value();}
private:
QString IsNull(QString Value) const {if (Value != NULL) return Value; else return "";}
struct NData {
//если идентификатор равен -1, значит это либо временная переменная, либо константное значение
qint32 _id;
//константные или временные значения имен не имеют, только переменные.
QString _name;
QString _value;
//это указывает на константное значение
bool _constvalue;
};
NData data;
};
Я полагал, что этого хватить, но при попытке написать:
Выдается ошибка: "no match for call to (NString)(const char[5])". Я понял это сообщение, как отсутствие конструктора, принимающего const char. Но вот проблема в том, что я перепробовал все варианты конструкторов из QString (даже const char*), но ничего помогает. А как надо написать параметр в конструкторе моего класса, чтобы можно было делать так, как написано в коде выше?