继承的函数在C ++中不可访问

时间:2011-10-31 15:27:19

标签: c++

我正在Visual C ++ 2010中编写一个小程序。

这是基类的代码:

class BaseInfo {

private:
    std::map <std::string, std::string> info;
    std::vector<std::string> extra_info_key;
public:
    uint get_id ();
    //Other function is hidden
};

uint BaseInfo::get_id () {
    return (uint)atoi ((info["ID"]).c_str());
}

然后我创建一个派生类,宣布为:

class test:BaseInfo {
public:
    void f();
};

void test::f (test& inf) {
    cout<<inf.get_id()<<endl;
}

但我收到了一个错误:

  

function“BaseInfo :: get_id无法访问。

我很困惑,似乎所有内容都在c ++规则中。

1 个答案:

答案 0 :(得分:13)

你正在使用私有继承,这就是原因。 变化:

class test : BaseInfo

为:

class test : public BaseInfo

有关public,protected和private继承的更多信息,请查看here