Nenhuma chamada correspondente ao construtor padrão, ao usar QVector

Tenho uma classe B que cria um objeto de uma classe A e chama um método do objet

a.h

#ifndef A_H
#define A_H

class A
{
public:
    A(int);
    void function();
};

#endif // A_H

a.cpp

#include "a.h"

A::A(int x)
{

}
void A::function(){
    //Do something.
}

b.h

#ifndef B_H
#define B_H
#include <QVector>
#include <a.h>


class B
{
public:
    B(int);
    QVector<A> list;
};

#endif // B_H

b.cpp

#include "b.h"

B::B(int y)
{
    list.append(A(y));
    list[0].function();
}  

O problema é que isso não compila. Ele retorna "nenhuma função correspondente para chamar 'A: A ()'". Eu sei que isso pode ser resolvido com uma declaração de encaminhamento, mas isso não funciona aqui, pois quero chamar a função "function". Também não quero incluir toda a classe A na classe B.