No recuerdo mucho de C++, ¿pero no sería así?
#include <iostream>
#include <string>
using namespace std;
class CTest {
private:
int a;
public:
CTest() : a(0) {}
CTest(int d) : a(d) {}
CTest(const CTest& obj) {
cout << "constructor copia invocado";
*this = obj;
}
CTest(CTest& obj) {
cout << "constructor copia sin const invocado";
*this = obj;
}
CTest& operator=(const CTest& obj) {
a = obj.a;
cout << "operator= invocado";
return *this;
}
int getA() {
return this->a;
}
};
int main() {
CTest miObj; //CTest(); ///////////////// AQUÍ ESTÁ EL ERROR
cout << miObj.getA() << endl;
return 0;
}
Si quieres crear un puntero:
CTest *miObj = new CTest();
Saludos.