求助 关于虚函数的问题!!!!

为什么“*****”没有打印
#include
using namespace std;
class A
{
public:
A(const string x):str(x)
{}
virtual void print()const
{
cout << str; <---------------没有打印
cout << "aaaaa";
}
private:
string str;
};
class B :public A
{
public:
B(const string x) :A(x)
{}
void print()const
{
cout << "1111" << endl;
A::print();
}
};
int main()
{
A* ptr = &B("*****");
ptr->print();
}

改成下面即可:

    B b("*****");
    A* ptr = &b;
    ptr->print();