C++ “正在访问父类的成员”;无效使用非静态数据成员“;C++;
我试图实现一个子类,该子类从父类继承构造函数,然后访问在该构造函数中初始化的父类的成员 因此,我将有如下内容: 家长:h:C++ “正在访问父类的成员”;无效使用非静态数据成员“;C++;,c++,xcode,C++,Xcode,我试图实现一个子类,该子类从父类继承构造函数,然后访问在该构造函数中初始化的父类的成员 因此,我将有如下内容: 家长: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 = myC
#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)
}
儿童健康:
#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在main中不会引起任何问题)
我对C++非常陌生,所以如果我对问题的描述太差,我会先道歉。提前感谢您的建议
void myFunc()
{
myClass tmp = foo;
}
定义全局函数,而不是成员函数。添加类作用域以使其成为成员函数
void child::myFunc()
{
myClass tmp = foo;
}
void myFunc()
不是child
的成员,而是一个常规的、非成员的独立函数,恰好具有相同的名称。奇怪的是,您知道的足够多,已经正确定义了parent::myFunc
。