/这里调用的是 类中的getResult() delete abc
时间: 2024-04-04 19:29:04 浏览: 9
对的,这里调用的是 AddCalculator 类中的 getResult() 方法。由于 AddCalculator 是 AbstractCalculator 的子类,AddCalculator 继承了 AbstractCalculator 中的 getResult() 方法,并且在 AddCalculator 中对 getResult() 方法进行了重写,因此调用 AddCalculator 对象的 getResult() 方法时,实际上调用的是 AddCalculator 中的 getResult() 方法。而 AbstractCalculator 中的 getResult() 方法被声明为虚函数,使得在运行时能够根据对象的实际类型,调用正确的 getResult() 方法。最后通过 delete 操作符销毁 abc 指针指向的对象,释放内存空间。
相关问题
abc = new MulCalculator; abc->m_Num1 = 10; abc->m_Num2 = 10; cout << abc->m_Num1 << " * " << abc->m_Num2 << " = " << << endl;//调用getresult delete abc;
在这段代码中,首先将 abc 指针指向一个 MulCalculator 类对象,然后设置该对象的 m_Num1 和 m_Num2 成员变量为 10。接着输出 m_Num1 和 m_Num2 相乘的结果,应该是调用 abc 对象的 getResult() 方法,即 cout << abc->m_Num1 << " * " << abc->m_Num2 << " = " << abc->getResult() << endl;。最后通过 delete 操作符销毁 abc 指针指向的对象,释放内存空间。由于 MulCalculator 类是 AbstractCalculator 类的子类,MulCalculator 类同样继承了 AbstractCalculator 中的 getResult() 方法,并且在 MulCalculator 类中重写了 getResult() 方法,使得在调用 abc 对象的 getResult() 方法时,实际上调用的是 MulCalculator 中的 getResult() 方法。
AbstractCalculator *abc = new AddCalculator; abc->m_Num1 = 10; abc->m_Num2 = 10; cout << abc->m_Num1 << " + " << abc->m_Num2 << " = " << abc->getResult() << endl;//这里调用的是 类中的getResult() delete abc; //用完了记得销毁
这段代码的功能是创建一个指向 AddCalculator 类对象的指针 abc,设置该对象的 m_Num1 和 m_Num2 成员变量为 10,然后调用该对象的 getResult() 方法计算 m_Num1 和 m_Num2 的和并输出结果。最后通过 delete 操作符销毁 abc 指针指向的对象,释放内存空间。这段代码涉及到了多态性,即通过父类指针指向子类对象,调用子类的成员函数。