自考新教材-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的主要内容,如果未能解决你的问题,请参考以下文章

自考新教材-p181

自考新教材-p156

自考新教材-p161

自考新教材-p159

自考新教材-p286

自考新教材-p285