zoukankan      html  css  js  c++  java
  • 13.1.1 无意义的基类对像(Nonsensical BaseClass Objects)_学习 简单

    //以下对上面的程序进行改进
    #include <iostream>
    using namespace std;
    class A{
    public:
    	virtual void fn()=0; 
    	//如果这个声明后不定义的话,必须得声明为纯虚函数才行,不然不能通过编译
    }; 
    //A类我中无fn成成员函数
    class B : public A
    {
    	public:
    		void fn(){
    		   cout<<" I am Class B";
    		};
    };
    class C : public A{
    	public:
    	void fn(){
    		cout<<" I am Class C";
    	};
    };
    void f(A* pa)
    {
        pa->fn();
    };
    int main()
    {
    	B b;
    	C c;
    	f(&c);
    	f(&b);
    
    	//这里好像直接传B *b就不能给f函数,但声明为A *a就可以传入f函数
    	//这里可能有一个类型传换的问题,暂时不做考虑
    	A *a = new B();
    	A *aa = new C();
        f(a);
    	f(aa);
    	cout<<"I am main"; 
    	system("pause");
    	return 0;
    }
    

      

  • 相关阅读:
    Flesch Reading Ease (poj 3371)
    保留道路
    列车调度
    三角形
    高精度加法
    AC自动机(1)
    线段树
    并查集(3)
    并查集(2)
    并查集
  • 原文地址:https://www.cnblogs.com/xiangxiaodong/p/2348053.html
Copyright © 2011-2022 走看看