Qual é a diferença entre o operador de atribuição e o construtor de cópia?

Eu não entendo a diferença entre construtor de atribuição e construtor de cópia em C ++. É assim:

class A {
public:
    A() {
        cout << "A::A()" << endl;
    }
};

// The copy constructor
A a = b;

// The assignment constructor
A c;
c = a;

// Is it right?

Eu quero saber como alocar memória do construtor de atribuição e construtor de cópia?

questionAnswers(8)

yourAnswerToTheQuestion