对虚基类的定义一定要用到虚函数吗
展开全部
不一定,这两个不是一个概念。
虚函数是当派生类和父类存在名字,参数和参数类型都相同的函数时用的。静态联编情况下,指针是属于哪个类的,就只能调用哪个类的函数,而和指向的对象没有关系。而虚函数就是为了实现动态联编,在运行的时候,可以根据指向的对象来运行对应的函数。
虚基类则是为了解决多重继承情况下二义性的问题,以节省内存空间。假设A为基类且存在一个成员value,B、C同时继承A类,而D又继承B和C,这样D中会出项两个value的实例。而虚基类在继承的时候声明,在派生类中只保留一个副本。
虚函数是当派生类和父类存在名字,参数和参数类型都相同的函数时用的。静态联编情况下,指针是属于哪个类的,就只能调用哪个类的函数,而和指向的对象没有关系。而虚函数就是为了实现动态联编,在运行的时候,可以根据指向的对象来运行对应的函数。
虚基类则是为了解决多重继承情况下二义性的问题,以节省内存空间。假设A为基类且存在一个成员value,B、C同时继承A类,而D又继承B和C,这样D中会出项两个value的实例。而虚基类在继承的时候声明,在派生类中只保留一个副本。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询