C++ 继承 10--减少两义性产生的混淆问题

原创 2018年04月17日 20:23:34
#include <iostream>
#include <string>
using namespace std;
/*---------------------------------
       12-17调用基类的同名成员函数时防止调用混淆不清
---------------------------------*/
class a
{
public:
int num()
{return 1;}
};
class b:public a
{
public:
int num()  //基类的同名成员函数
{return 2;}
};
class c:public a
{
public:
int num()  //基类的同名成员函数
{return 3;}
};
class d:public b,public c
{
public:
int B()
{return b::num();}  //若需要频繁调用基类的同名成员函数,则可定义简略地定义一个函数来调用它
};
int main()
{
d d;
// d.a::num();  //d并非由a直接派生而来,如此编译将出错
cout<<d.b::num()<<endl;  //调用父类b的成员函数num() 
                        //若需要频繁调用基类的同名成员函数,可采取下面的方式
cout<<"---------"<<endl;
cout<<d.B()<<endl;  //调用自个儿的成员函数B()
return 0;

}


运行结果:

不考虑事务隔离可能产生的问题

脏读:A事务中读取到了B事务中未提交的数据,造成数据错误不可重复读:A事务中读取到了B事务中已提交的数据,在特定情景下会产生影响,比如生成统一的数据报表虚读(幻读):A事务中读取到了B事务中已提交的新...
  • franky814
  • franky814
  • 2015-01-25 17:04:56
  • 738

c++菱形继承产生的问题及解决

#include #include #include using namespace std; class A { public: A(){printf("A create.\n");} ...
  • Wonder233
  • Wonder233
  • 2016-10-18 22:24:10
  • 310

【Thinking in java】对象导论

k
  • GreyAnts
  • GreyAnts
  • 2014-07-04 21:56:29
  • 393

C++ 虚函数 单一继承 多重继承 单一虚继承 菱形虚继承 的简洁总结

虚函数所谓虚函数,从其功能上来看是采用虚调用的方式;当子类重新定义其父类的虚函数以后,父类指针根据付给他的不同子类指针,动态地调用属于子类的该函数;假如一个类有虚函数,则该类会因为维护该虚函数,而额外...
  • misol
  • misol
  • 2011-07-13 21:07:35
  • 3241

Mysql事务详解(二)事务的隔离性和容易引起的问题

上一篇讲到事务的四大特性,其中有一个是事务的隔离性,即两个事物之间不会互相影响,为了实现这样的功能,就引入了事务的隔离性。 事务的隔离性 为了保证事务的隔离性,自然我们可以把事务设计成单线程的,这...
  • u014629433
  • u014629433
  • 2016-06-01 14:43:09
  • 627

MySQL的事务的四大特性和隔离级别

事务就是一组原子性的SQL语句,或者说一个独立的工作单元。事务内的SQL语句,要么全部执行成功,要么全部执行失败。1. 事务的四大特性(ACID)原子性(atomicity):一个事务必须视为一个不可...
  • lamp_yang_3533
  • lamp_yang_3533
  • 2018-02-21 23:12:10
  • 72

虚基类不会产生两义性

#include using namespace std; class human {     public:     void stand(){cout }; class father...
  • Arivn_emb
  • Arivn_emb
  • 2013-11-21 16:18:16
  • 402

C++构造函数的二义性

#include using namespace std; class Dog{ private: int y; public: Dog(); Dog(int y); }...
  • laohan_
  • laohan_
  • 2012-04-10 17:16:55
  • 388

继承产生两义性的问题

#include using namespace std; class A { public: A(){cout
  • qq125096885
  • qq125096885
  • 2015-03-15 15:54:14
  • 218

内存碎片之如何产生

    malloc/free或new/delete大量使用后回造成内存碎片,那么这种碎片形成的机理是什么?      如果机理是申请的内存空间大小(太小)所形成的,那么,申请多大的区域能够最大限...
  • FlowShell
  • FlowShell
  • 2010-11-09 09:55:00
  • 8435
收藏助手
不良信息举报
您举报文章:C++ 继承 10--减少两义性产生的混淆问题
举报原因:
原因补充:

(最多只允许输入30个字)