私は小さなコードサンプルを持っています:
#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 ()()’
}
しかし、私が以下のものに変更した場合、それが機能する場合、
B* b = new B();
b->print();
オブジェクトをスタックに割り当てると機能しないのはなぜですか?