vs2012 c++ 未声明的标识符 无法访问private成员 5
写代码的时候没有提示错误,并且所访问的类的成员都是公有的,写的时候都会自动提示蹦出其成员,为什么点击启动调试后对于某些变量会提示未声明,说类的成员是私有的,甚至还报错说类...
写代码的时候没有提示错误,并且所访问的类的成员都是公有的,写的时候都会自动提示蹦出其成员,为什么点击启动调试后对于某些变量会提示未声明,说类的成员是私有的,甚至还报错说类没有这样的成员,参见类定义,。。??什么情况啊
展开
2个回答
展开全部
参看样例:
class BaseClass{
public:
void Fun1(){}
void Fun2(){}
private:
void Fun3(){}
};
class DevClass:BaseClass{
public:
void Fun5(){}
private:
void Fun6(){}
};
class DevClass2:private BaseClass{
public:
private:
void Fun6(){
Fun1();//不能访问Private从基类继承的方法
}
};
class DevClass3:public BaseClass{
public:
private:
void Fun6(){}
};
class DevClass4:protected BaseClass{
public:
private:
void Fun6(){Fun1();}
};
void test(){
DevClass d;
DevClass2 d2;
DevClass3 d3;
DevClass4 d4;
d.Fun1(); //“BaseClass::Fun1”不可访问,因为“DevClass”使用“private”从“BaseClass”继承
d2.Fun1();//“BaseClass::Fun1”不可访问,因为“DevClass2”使用“private”从“BaseClass”继承
d3.Fun1();
d4.Fun1();//“BaseClass::Fun1”不可访问,因为“DevClass4”使用“protected”从“BaseClass”继承
}
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询