我试图澄清继承如何用于作业。
class AA
{
public:
setAAA();
protected:
int AAA;
};
class BB : public AA
{
public:
setBBB();
private:
int BBB;
};
BB的AA继承是否导致BB拥有以下成员列表? - AAA - BBB - setAAA() - setBBB()
如果它成功的原因我不能执行:
BB Frank;
Frank.setAAA();
答案 0 :(得分:4)
它确实意味着它确实有效。在此处运行代码以进行确认:
http://liveworkspace.org/code/51fd6850ebfb5f86dc61c6dc074fe30a
#include <iostream>
class AA
{
public:
void setAAA() { std::cout << "Setting AAA" << std::endl; };
protected:
int AAA;
};
class BB : public AA
{
public:
void setBBB() {};
private:
int BBB;
};
int main(int argc, char* argv[])
{
BB b;
b.setAAA();
return 0;
}
你的问题是你的方法没有返回类型:)
答案 1 :(得分:3)
如果这样做我为什么不能表演:BB Frank; Frank.setAAA();
好。首先定义返回类型setAAA()
。例如,将其设为void
。
然后可以访问成员函数。