MFC中静态成员函数调用其他类的非静态变量
在childClass(所在文件为child)中要调用mainClass(所在文件为Mymain)里的成员。这该如何实现???...
在 childClass(所在文件为child) 中要调用
mainClass(所在文件为Mymain)
里的成员。这该如何实现??? 展开
mainClass(所在文件为Mymain)
里的成员。这该如何实现??? 展开
3个回答
展开全部
静态方法只能调用静态成员,如果您的子类继承自主类,那么您要通过静态方法调用主类中的成员,那么您只能在静态成员中保存当前类的实例对象,例如像单例模式的样式。如下所示:
class mainclass {
public:
int fn() {
return 1;
}
mainclass() {
}
};
class childclass :public mainclass {
private:
static childclass *mInstance;
childclass() {
}
public:
static childclass *getInstance() {
if (mInstance == null) {
mInstance = new childclass();
}
return mInstance;
}
static fn2() {
childclass.getInstance().fn();
}
}
class mainclass {
public:
int fn() {
return 1;
}
mainclass() {
}
};
class childclass :public mainclass {
private:
static childclass *mInstance;
childclass() {
}
public:
static childclass *getInstance() {
if (mInstance == null) {
mInstance = new childclass();
}
return mInstance;
}
static fn2() {
childclass.getInstance().fn();
}
}
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询