Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/130.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ C++;-调用基类';从基类内部重写的虚方法';操作人员_C++_Inheritance_Polymorphism - Fatal编程技术网

C++ C++;-调用基类';从基类内部重写的虚方法';操作人员

C++ C++;-调用基类';从基类内部重写的虚方法';操作人员,c++,inheritance,polymorphism,C++,Inheritance,Polymorphism,我有一个基类,我称之为base,还有一个派生类derivedBase类有一个名为readInData(istream)的方法,该方法是从定义的操作符>函数内部调用的派生的有自己对readInData(istream)的定义,但还没有自己对运算符的定义(从基继承定义) 我的问题是,如果Derived,使用base中定义的运算符调用两个类中定义的方法,那么调用的是base::readInData(istream)还是Derived::readInData(istream) 我希望调用Derived:

我有一个基类,我称之为
base
,还有一个派生类
derived
Base
类有一个名为
readInData(istream)
的方法,该方法是从定义的
操作符>
函数内部调用的<代码>派生的有自己对readInData(istream)的定义,但还没有自己对运算符的定义(从
继承定义)

我的问题是,如果
Derived
,使用base中定义的运算符调用两个类中定义的方法,那么调用的是
base::readInData(istream)
还是
Derived::readInData(istream)

我希望调用
Derived::readInData(istream)
,因此我是否还需要重新定义运算符来执行此操作

谢谢,
标记

因为您的问题说明函数是虚拟的,所以它将被调用。

因为您的问题说明函数是虚拟的,所以它将被调用。

类A
class A
{
public:
  void print()
  {
    std::cout << saySomething() << std::endl;
  }
  virtual std::string saySomething()
  {
    return "hey!";
  }
};

class B : public A
{
public:
  virtual std::string saySomething()
  {
    return "I am B!";
  }
};


int _tmain(int argc, _TCHAR* argv[])
{
  system("pause");

  B b;
  b.print();

  system("pause");
}
{ 公众: 作废打印() { std::cout
A类
{
公众:
作废打印()
{

好消息。谢谢。好消息。谢谢。