首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

谁帮小弟我讲下C++的继承有关问题啊郁闷

2012-03-13 
哪位高手帮我讲下C++的继承问题啊。郁闷#includestring#includeiostreamusingnamespacestdclassanimo{

哪位高手帮我讲下C++的继承问题啊。郁闷
#include   <string>
#include   <iostream>

using   namespace   std;
class   animo{
protected:
int   age;
public:
string   nose;
string   ear;
};
class   pepole   :   protected   animo{
protected:
string   name;
};
class   boy   :   public   pepole{
public:
void   set(){
age=890;
nose= "yese ";
cout < <age < <endl;
}
};
void   main(){
boy   *p=new   boy;
cout < <p-> age < <endl;
p-> set();
}
为什么在倒数第三行中用指针P访问基类age的时候会编译失败:
error   C2248:   “animo::age”:   无法访问   protected   成员(在“animo”类中声明)


请高手帮忙解决下,谢了。。。。。。。。。。。

[解决办法]
class pepole : protected animo
这样在pepole类里,age的访问权限是private,即不能被子类访问
[解决办法]
protected第一次被继承为ptotected,继承类可 访问
再次被继承为private不能被继承类访问

[解决办法]
class animo{
protected:
int age;//这里已经注定age不可在类外访问了.但派生类的成员函数可以访问它.
public:
string nose;
string ear;
};
[解决办法]
age 为 protected 属性成员,
仅在类域内部或者是其 public/protected 派生类的类域内可以被访问。

所以,
main内是不可访问的。。。。
[解决办法]
把类换成结构体就行了

热点排行