请问一个C++中线程和虚函数的有关问题
请教一个C++中线程和虚函数的问题
以前没搞过C++,现转行搞C++由于初学,对C++杂乱的特性不了解,最近开发中遇到一个线程和虚函数的问题,大致问题如下:
------解决方案--------------------
完全可以,静态方法和全局方法没两样,就只是作用域不同。
随意访问父类和子类会涉及到强制转换。
------解决方案--------------------
”静态成员函数不能访问非静态的成员“没有理解正确。
以前没搞过C++,现转行搞C++由于初学,对C++杂乱的特性不了解,最近开发中遇到一个线程和虚函数的问题,大致问题如下:
class CBase在基类中调用静态成员函数创建子线程,子线程会调用纯虚函数FuncA,FuncA在子类中实现并会调用子类的中的成员变量和函数,就是子类的FuncA()被父类中创建的子线程调用,请问这样做行得通吗,如果行得通,那子线程能不能随意访问父类和子类的成员变量,麻烦手帮忙解释,感激不尽。
{
public:
CBase();
~CBase();
static int WINAPI ThreadFunc(LPVOID lpParam);
virtual void FuncA() = 0;
void FuncB();
}
class CChild:public CBase
{
public:
CChild();
~CChild();
virtual void FuncA()
void FuncC():
}
------解决方案--------------------
完全可以,静态方法和全局方法没两样,就只是作用域不同。
随意访问父类和子类会涉及到强制转换。
------解决方案--------------------
”静态成员函数不能访问非静态的成员“没有理解正确。
static int WINAPI ThreadFunc(LPVOID lpParam)
{
Base* p = (Base*)lpParam;
p->FuncA(); //OK
p->FuncB(); //OK
//静态成员函数不能访问非静态的成员说的是下面两种情况
FuncA(); //NG
FuncA() //NG
}