vs2012 c++ 未声明的标识符 无法访问private成员

写代码的时候没有提示错误,并且所访问的类的成员都是公有的,写的时候都会自动提示蹦出其成员,为什么点击启动调试后对于某些变量会提示未声明,说类的成员是私有的,甚至还报错说类没有这样的成员,参见类定义,。。??什么情况啊

参看样例:

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”继承
}
温馨提示:答案为网友推荐,仅供参考
第1个回答  2014-12-01
你得把代码贴出来啊追问

代码太多了,设计好多文件,不过我的核心疑问是写代码是vs检查没问题,但是编译时却提示“未声明”这种低级的错误,我试了,如果我真的未声明,写的时候就会提示的,难道写代码的时候做的检查与后来编译时做的检查用的不是一个标准?

追答

那应该不会的

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网