zoukankan      html  css  js  c++  java
  • C++类继承示例

    C++的子类与孙子类都实现了虚函数时,孙子类的实现会覆盖掉子类的实现。

    继承的最主要的应用就是把不同的类放到一个数组中,然后遍历调用同名函数。

    实例如下:

    #include <iostream>
    #include <stdlib.h>
    #include <vector> 
    using namespace std;
    
    class Parent{
    	protected:
    		string pname;
    	public:
    		Parent(string name){
    			pname=name;	
    		}
    		
    		virtual void printName(){};
    };
    
    class Child: public Parent{
    	protected:
    		string cname;
    	public:
    		Child(string name):Parent(name){
    			cname=name;
    		}
    	
    		virtual void printName(){
    			cout<<"This is child, cname is "<<cname<<", pname is "<<pname<<endl;
    		}
    };
    
    class GrandChild: public Child{
    	private:
    		string gname;
    		
    	public:
    		GrandChild(string name):Child(name){
    			gname=name;
    		}
    		
    		virtual void printName(){
    			cout<<"This is grandchild, gname is "<<gname<<", cname is "<<cname<<", pname is "<<pname<<endl;
    		}
    };
    
    int main(){
    	string name="C";
    	Child child(name);
    	name="GC";
    	GrandChild gchild(name);
    	
    	vector<Parent*> mlist;
    	mlist.push_back(dynamic_cast<Parent*>(&child));
    	mlist.push_back(dynamic_cast<Parent*>(&gchild));
    	
    	for(int i=0;i<mlist.size();++i){
    		mlist[i]->printName();
    	}
    }
    

    注意子类与孙子类的printName函数前的virtual可加可不加,都可以正确运行……不知道哪个才是正确写法= =

     

  • 相关阅读:
    .sln是什么的格式
    VMware的四种网络连接方式
    Cisco 2950交换机 配置手册
    Framework2.0标识没有写访问权限的解决办法
    ASP.NET IIS 注册工具
    .suo介绍
    Uri In WPF
    BindingErrorListener In WPF
    WPF 详解模板
    .NET装饰器(Decorator)模式
  • 原文地址:https://www.cnblogs.com/plwang1990/p/4274189.html
Copyright © 2011-2022 走看看