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