Duplicar posibles:
Why is it an error to use an empty set of brackets to call a constructor with no arguments?C++ error de la herencia cuando el objeto se le asigna en la pila
tengo pequeña muestra de código:
#include <iostream>
using namespace std;
class A
{
public:
void print()
{
cout << "Hello" << endl;
}
};
class B: public A
{
public:
B() { cout << "Creating B" << endl;}
};
int main()
{
B b();
b.print(); // error: request for member ‘print’ in ‘b’, which is of non-class type ‘B()()’
}
Sin embargo si cambio a la uno a continuación, si funciona,
B* b = new B();
b->print();
¿Por qué no funciona cuando asigno el objeto en la pila?