// RetClass.cpp : 定义控制台应用程序的入口点。
//
#include "stdafx.h"
#include <iostream>
using namespace std;
class A {
private:
int numA;
public:
A(int n) :
numA(n)
{
}
~A()
{
cout << "~A" << endl;
}
virtual A* print(A* a)
{
cout << 'A' << endl;
return a;
}
};
class B: public A {
private:
int numB;
public:
B(int n) :
A(n), numB(n) {
}
~B()
{
cout << "~B" << endl;
}
public:
virtual B* print(A* a)
{
cout << 'B' << endl;
return (B*) a;
}
/*
virtual A* print(A* a)
{
cout << 'B' << endl;
return a;
}
*/
};
int _tmain(int argc, _TCHAR* argv[])
{
A * a = new B(1000);
a->print(a);
cout << "=====================" << endl;
A a1 = B(1000);
a1.print(a);
cin.get();
return 0;
}
/*
B
=====================
~B
~A
A
~A
*/
父类和子类的同名成员函数参数格式相同,返回值类型不同
最新推荐文章于 2023-10-28 00:11:43 发布