bulk为Quote派生类
vector<Quote> basket;
basket.push_back(q);
basket.push_back(bulk("think in C++", 100.0, 50, 0.5));
cout << "普通对象:"<<endl;
cout<<basket.back().net_price(10)<<endl;
调用的是Quote的net_price成员,没有多态,vector 中的bulk 为切割版的Quote对象
vector<shared_ptr<Quote>> bskt;
bskt.push_back(make_shared<Quote>("think in java",99.0));
bskt.push_back(make_shared<bulk>("think in C++",100.0,50,0.5));
cout << "shared_ptr" << endl;
cout<<bskt.back()->net_price(100);
调用了bulk的net_price函数,多态
所以我们无法直接用对象实现多态,反而通过指针或引用实现多态