Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/164.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ “正在访问父类的成员”;无效使用非静态数据成员“;C++;_C++_Xcode - Fatal编程技术网

C++ “正在访问父类的成员”;无效使用非静态数据成员“;C++;

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

我试图实现一个子类,该子类从父类继承构造函数,然后访问在该构造函数中初始化的父类的成员

因此,我将有如下内容:

家长: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)
}
儿童健康:

#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