Реклама

Создание собственного класса

Класс, Qt, QString, int

@Arrow9 января 2017 г. 3:33#

Проблема с реализацией.

@Arrow9 января 2017 г. 3:53#

Вопрос в следующем: Есть класс "A" в котором реализован метод: int distr() const { return this->Distr; } Как реализовать в классе возможность перевода значения int в QString, чтобы в месте использования класса можно было выполнить следующее: A *ai = new Ai(); Qstring str = ai->distr().toInt(); // Необходимое действие

Реклама

@EVILEG9 января 2017 г. 11:06#ответил @Arrow

Я так понимаю, что Distr - это некая переменная типа int ?

Если так, то перевод int в QString можно сделать следующим образом:

A *ai = new Ai(); 
QString str = QString::number(ai->distr());

P/S/ Используйте, пожалуйста, для вставки кода специальное диалоговое окно, которое можно вызвать с помощью одной из кнопок (которая с двумя треугольными скобками), тогда форматирование и переносы строк не будут съезжать.

@Arrow9 января 2017 г. 15:15#ответил @EVILEG

Спасибо, я так и сделал, но думал, что есть возможность задать это в классе так как я написал выше.

Еще один вопрос - есть ли в Qt что-то наподобие записи из C# :

throw new Exception("Ошибка данных");
@EVILEG9 января 2017 г. 15:27#ответил @Arrow

В данном случае вот эта Ваша запись сама по себе выглядит странно:

QString str = ai->distr().toInt();
По смыслу, Вы приравниваете int к QString . Если хотите так приравнивать, то можно сделать отдельный класс наследованный от QString и добавить перегрузку оператора присвоения, но в данном случае это будет неправильно. QString сродни базовому типу в Qt, и без особой надобности такое лучше не делать.

А Distr у Вас по той информации, что Вы дали явно является объектом типа int . Так что тоже как-то странно будет прикручивать метод toInt() к этому объекту какими-нибудь правдами или неправдами

Если уж хочется получить для этого дела один метод у класса, то тогда добавьте что-нибудь вроде такого:

QString distrToString() const 
{ 
    return QString::number(this->Distr);
} 

Что впрочем по смыслу будет мало отличаться от первого варианта

Что касается throw - это уже вопрос не к Qt, а к самому C++.
Скажем так: Исключения в C++ есть, но они как-то в меньшей степени используются, чем в C#. Я уже не помню, когда последний раз пользовался исключениями.

Реклама

@Arrow9 января 2017 г. 15:46#

Спасибо.

Ответы

Только авторизованные пользователи могут отвечать на форуме.
Пожалуйста, Авторизуйтесь или Зарегистрируйтесь

Реклама