自考新教材-p250
Posted duanqibo
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了自考新教材-p250相关的知识,希望对你有一定的参考价值。
用基类指针访问基类对象及派生类对象
源程序:
#include <iostream>
#include <string>
using namespace std;
class A
{
public:
void put_name(string s)
{
name = s;
}
virtual void print_name() const
{
cout << "A::" << name << " ";
}
string name;
};
class B :public A
{
public:
void put_name(string s)
{
put_name(s);
}
virtual void print_name() const
{
cout << "B::" << name << "," << A::name << " ";
}
void put_phone(string num)
{
phone_num = num;
}
void print_phone() const
{
cout << phone_num << " ";
}
string phone_num;
};
int main() {
A * A_p;
A A_obj;
B B_obj;
A_p = &A_obj;
A_p->put_name("多态示例_名字");
cout << "A_p->print_name()的输出内容: ";
A_p->print_name();
cout << "A_obj.print_name()的输出内容: ";
A_obj.print_name();
A_p = &B_obj;
A_p->put_name("另一个名字");
cout << "A_p->print_name()的输出内容: ";
A_p->print_name();
cout << "A_p->print_name()的输出内容: ";
A_p->print_name();
cout << "B_obj.print_name()的输出内容: ";
B_obj.print_name();
B_obj.put_phone("电话号码999");
cout << "((B*)A_p)->print_phone()的输出内容: ";
((B*)A_p)->print_phone();
//A_p->print()_phone();
cout << "B_obj.print_phone()的输出内容: ";
B_obj.print_phone();
system("pause");
return 0;
}
运行结果:
以上是关于自考新教材-p250的主要内容,如果未能解决你的问题,请参考以下文章