关于对象切片与多态性的认识
2013-09-12 10:11
155 查看
#include <iostream> #include <string> using namespace std; class Pet { string pname; public: Pet(const string& name) : pname(name) {} virtual string name() const { return pname; } virtual string description() const { return "This is " + pname; } }; class Dog : public Pet { string favoriteActivity; public: Dog(const string& name, const string& activity) : Pet(name), favoriteActivity(activity) {} string description() const { return Pet::name() + " likes to " + favoriteActivity; } }; void describe(Pet p) { // Slices the object cout << p.description() << endl; } void describe1(Pet& p) { // Slices the object cout << p.description() << endl; } int main() { Pet p("Alfred"); Dog d("Fluffy", "sleep"); describe(p); describe(d); describe1(p); describe1(d); Pet p1=d; cout<<p1.description(); Pet*p2=&d; cout<<p2->description(); }
输出结果为
相关文章推荐
- 关于遍历对象的属性的一点新认识,如何只遍历对象自身的属性
- 关于java类和对象的新认识
- 关于对JSP中四种范围对象的作用域的认识
- 关于C#多态性的一点认识
- 关于类集中使用多态性实例化对象
- OC语言关于类和对象的初步认识
- 关于多态性的动态绑定问题, 对象调用方法的执行过程.
- 关于jquery 集合对象的 each和click方法的 思考 -$(this)的认识
- 关于在标准库算法中使用函数对象的一点认识
- (每日心得)关于面向对象与面向过程的一点认识
- 关于理解Java中的多态性,父类引用创建子类对象
- 多态性与虚函数之对象切片
- 对php面向对象多态性认识
- 今天碰到的一个问题,关于通过基类对象的引用给子类赋值
- 多态性——对象的多态性
- struts2框架中关于ValueStack的认识
- 关于Decorator Pattern 被包装的对象生成顺序的问题
- Android中关于Volley的使用(九)认识HurlStack(HttpClientStack)
- 关于用equals()方法去比较对象
- 认识JVM(1)——对象分配&回收算法