64,650
社区成员
发帖
与我相关
我的任务
分享
class A{
public:
virtual f(){}
virtual f2(A&item);
{
//process code
}
};
calss B:public A{
public:
virtual f(){}
virtual f2(A&item)
{
//process code
}
};
指针
A a;
A *p = new B;
p->f() //调用B中的f(); 根据其运行时的类型,确定执行哪个作用域中的函数;
p = &a;
p->f() //调用A中的f()
引用
f3(const A&item)
{
item.f2();
}
A a; B b;
f3(a) //A 中的f2()函数
f3(b) //B中的f2()函数
class a
{
virtual void fun1()
{
cout<<"a"<<endl;
};
public:
void fun()
{
fun1();
}
};
class b:public a
{
void fun1()
{
cout<<"b"<<endl;
}
};
int main()
{
a *p;
p = new b();
p->fun();
return 0;
}
#include<iostream>
using namespace std;
class A
{
public:
void moreprint()
{
print();
}
virtual void print()
{
cout<<"class A:"<<endl;
}
};
class B:public A
{
public:
void print()
{
cout<<"class B:"<<endl;
}
};
int main()
{
A a;
B b;
a.print();
b.print();
A* p;
p=&a;
cout<<"基类指针调用基类对象:"<<endl;
p->print();
cout<<"基类指针调用子类对象:"<<endl;
p=&b;
p->print();
A& q=a;
cout<<"基类引用调用基类对象:"<<endl;
q.print();
cout<<"基类引用调用子类对象:"<<endl;
q=b;
q.print();
return 0;
}