继承的访问控制_公有继承(C++语言)
2014-04-18 16:43
232 查看
/*在公有继承中,
基类成员的可访问性在派生类中保持不变,
即基类的私有成员在派生类中还是私有成员,
不允许外部函数和派生类的成员函数直接访问,
但可以通过基类的公有成员函数访问。
基类的公有成员和保护成员在派生类中仍是公有成员和保护成员,
派生类的成员函数可直接访问它们,
而外部函数只能通过派生类的对象间接访问它们。
如以下程序:*/
#include <iostream>
using namespace std;
class Base//-------------------定义基类Base
{
private://--------------------定义基类私有数据成员
int a;
public://---------------------定义基类公有成员
void inita(int x)//-----------------------定义成员函数
{
a = x;
}
int geta()//----------------定义成员函数
{
return a;
}
};
class Derived:public Base//---------------类Derived以公有继承的方式继承类Base
{
private:
int b;
public:
void initb(int y)
{
b = y;
}
int getb()
{
return b*geta();//调用基类成员函数
}
};
int main()
{
Derived ob;//--------创建对象
ob.inita(12);
ob.initb(5);
cout << "the result of ob.getb() is: " << ob.getb() << endl;
system("pause");
return 0;
}
基类成员的可访问性在派生类中保持不变,
即基类的私有成员在派生类中还是私有成员,
不允许外部函数和派生类的成员函数直接访问,
但可以通过基类的公有成员函数访问。
基类的公有成员和保护成员在派生类中仍是公有成员和保护成员,
派生类的成员函数可直接访问它们,
而外部函数只能通过派生类的对象间接访问它们。
如以下程序:*/
#include <iostream>
using namespace std;
class Base//-------------------定义基类Base
{
private://--------------------定义基类私有数据成员
int a;
public://---------------------定义基类公有成员
void inita(int x)//-----------------------定义成员函数
{
a = x;
}
int geta()//----------------定义成员函数
{
return a;
}
};
class Derived:public Base//---------------类Derived以公有继承的方式继承类Base
{
private:
int b;
public:
void initb(int y)
{
b = y;
}
int getb()
{
return b*geta();//调用基类成员函数
}
};
int main()
{
Derived ob;//--------创建对象
ob.inita(12);
ob.initb(5);
cout << "the result of ob.getb() is: " << ob.getb() << endl;
system("pause");
return 0;
}
相关文章推荐
- 继承与派生:派生类对基类成员的访问控制之公有继承
- 继承的访问控制_私有继承(C++语言)
- 三十七、继承与派生:派生类对基类成员的访问控制之公有继承
- C++ 公有继承、保护继承和私有继承中类成员的访问权限的控制
- 继承的访问控制_保护继承_保护继承(C++语言)
- 继承的访问控制--公有继承
- C++ 公有继承、保护继承和私有继承中类成员的访问权限的控制
- 鸡啄米:C++编程入门系列之三十七(继承与派生:派生类对基类成员的访问控制之公有继承)
- C++ 公有继承、保护继承和私有继承中类成员的访问权限的控制
- C++基类和派生类私有、保护、公有成员访问控制以及动态绑定、三种继承
- 继承的访问控制_保护继承_保护成员的声明(C++语言)
- C++ 公有继承、保护继承和私有继承中类成员的访问权限的控制
- C++编程入门系列之三十七(继承与派生:派生类对基类成员的访问控制之公有继承)
- C++ 公有继承、保护继承和私有继承中类成员的访问权限的控制
- [C++]访问控制与继承(public,protect,private)
- Java——类的继承、访问控制
- 面向对象特性,包括继承、封装、多态、抽象、访问控制
- C++类的继承和派生,访问控制
- ZTE 继承与访问控制
- C++类的继承与多重继承的访问控制(转载)