class A가 구현되어 있고 class B 내부의 멤버 변수로 A를 사용하고 싶습니다.

코드는
class B{
private:
    A a;
};

그리고 문제는

void B::function(){
    ...
    job(a)
}
이런식으로 B의 메소드 안에서 a를 사용하려 하니 error:use of deleted function 'A::A(const A&)' 이런 오류 메세지가 나면서 빌드 실패가 뜹니다.

우선 A *a로 포인터로 바꿔주고 B의 생성자에서 A를 명시적으로 new로 할당하는 식으로 바꾸니 문제없이 돌아는 가는데 원래 방식이 왜 실패한건지 궁금합니다. 제 생각에는 A의 생성자가 명시적으로 호출이 안되서 뭔가 꼬인것같은데 혹시 정확하게 아시는분 계신가요?