一个C++继承、虚函数和多态性的实例代码

时间:2014-08-27 18:41:58   收藏:0   阅读:208
#include <iostream>
#include <string>

using namespace std;

namespace Animals {
	class Dog {
	  private:
		string name;
		
	  public:
		Dog(string name) : name(name) {
		}
		
		Dog() : name(NULL) {
		}
		
		virtual void bark() {
		  cout << "Baseclass: Hi, " << name << endl;
		}
		
		string getName() {
		  return name;
		}
		
		void setV(string aname) {
		  name = aname;
		}
	};

	class SDog : public Dog {
	  public:
		SDog(string name) : Dog(name){}
		
		virtual void bark() {
			Dog::bark();
			cout << "Dericed Class: Hi, " << Dog::getName() << endl;
		}
	};
}

int main() {
  using namespace Animals;
  
  Dog a("martin");
  SDog b("merry");
  a.bark();
  b.bark();
  return 0;
}

评论(0
© 2014 mamicode.com 版权所有 京ICP备13008772号-2  联系我们:gaon5@hotmail.com
迷上了代码!