0
我想实现一个子类继承父类的构造函数,随后访问在该构造函数中初始化的父类的成员。访问父类的成员“非法使用非静态数据成员”C++
所以,我有这样的事情:
parent.h:
#include "myClass.h"
class parent
{
public:
myClass foo;
virtual void myFunc();
parent(int a);
};
parent.cpp:
#include "parent.h"
parent::parent(int a)
{
foo = myClass(a);
}
void parent::myFunc()
{
(do stuff)
}
child.h:
#include "parent.h"
class child: public parent
{
public:
using parent::parent;
void myFunc();
};
child.cpp:
#include "child.h"
void myFunc()
{
myClass tmp = foo;
}
问题是,当我尝试访问child.cpp中myClass(foo)的实例时,出现错误“无效使用非静态数据成员'foo'”。奇怪的是,我可以从主程序访问foo(child.foo不会导致主要问题)。
我对C++非常陌生,所以如果对我的问题描述不当,我会提前道歉。在此先感谢您的任何建议!
'void myFunc()'不是'child'的成员,而是一个常规的非成员独立函数,它恰好具有相同的名称。奇怪的是,你足够了解正确定义了'parent :: myFunc'。 – 2015-04-05 01:43:28