我正在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());
}
Run Code Online (Sandbox Code Playgroud)
然后我创建一个派生类,宣布为:
class test:BaseInfo {
public:
void f();
};
void test::f (test& inf) {
cout<<inf.get_id()<<endl;
}
Run Code Online (Sandbox Code Playgroud)
但是我收到了一个错误:
函数"BaseInfo :: get_id无法访问.
我很困惑,似乎一切都在c ++规则中.
dar*_*mos 13
你正在使用私有继承,这就是原因.更改:
class test : BaseInfo
Run Code Online (Sandbox Code Playgroud)
至:
class test : public BaseInfo
Run Code Online (Sandbox Code Playgroud)
有关public,protected和private继承的更多信息,请查看此处
归档时间: |
|
查看次数: |
135 次 |
最近记录: |