@l2p

Как мне правильно унаследовать класс?

Есть класс:
class one : public QObject
{
      Q_OBJECT
      int per;

public:
      one(int per) { this->per = per; }
};

Кто наследует:
class two : public one {};
При вызове two *r = new two(123); пишется no matching function to call to 'one::one(int&)'

Подскажите, пожалуйста, что я неправильно делаю?
  • Вопрос задан
  • 2500 просмотров
Решения вопроса 1
tsarevfs
@tsarevfs Куратор тега C++
C++ developer
конструкторы не наследуются.
class one
{
public:
   Q_OBJECT
   one(int a)
   {
   }
};

class two : one
{
public:
   Q_OBJECT
   two(int a)
      :one(a)
   {
   }
};
int main()
{
   one * s = new two(1);
   return 0;
}
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
@AlexP11223
В two тоже Q_OBJECT надо.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы