Chinaunix首页 | 论坛 | 博客
  • 博客访问: 2545119
  • 博文数量: 308
  • 博客积分: 5547
  • 博客等级: 大校
  • 技术积分: 3782
  • 用 户 组: 普通用户
  • 注册时间: 2009-11-24 09:47
个人简介

hello world.

文章分类

全部博文(308)

分类: C/C++

2010-11-25 14:51:02

    修改例5.3的程序,改为公用继承方式。上机调试程序,使之能正确运行并得到正确结果。对这两种继承方式做分析比较,考虑在什么情况下二者不能互相替换。
 

#include <iostream>
using namespace std;
class Student
{
    public:
    void get_value();
    void display();
        
    protected:
    int num;
    string name;
    char sex;
};

void Student :: get_value()
{
    cin >> num >> name >> sex;
}

void Student :: display()
{
    cout << "num:" << num << endl;
    cout << "name:" << name << endl;
    cout << "sex:" << sex << endl;
}

class Student1:public Student
{
    public:
    void display_1();
    void get_value1();
     
    private:
    int age;
    string addr;
};

void Student1 :: display_1()
{
    cout << "num:" << num << endl;
    cout << "name:" << name << endl;
    cout << "sex:" << sex << endl;
    cout << "age:" << age << endl;
    cout << "address:" << addr << endl;
}

void Student1 :: get_value1()
{
     cin >> num >> name >> sex >> age >> addr;
}

int main()
{
    Student1 stu;
    stu.get_value1();
    stu.display_1();
    system("pause");
    return 0;
}


在上述的代码中,其实是没有什么区别,因为如果采用public继承方式,则父类的访问方式保持不变。而portected继承方式,则除了父类的private的访问方式仍然为不可访问,而其它的(public,protected) 都为protectd。因此当为了保护父类的成员还是采用protectd方式比较好。
阅读(3811) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~