想在一个类中调用另一个类的函数,怎么弄?我试了PostMessage不行
解决方案 »
- VC ShellExcute文件参数lpParameters带空格的问题!
- combobox添加下拉项的问题
- VC ipx协议通信编程,谁知道啊?
- IWebBrowser2接口中怎样使创建的IE界面的"X"关闭按钮不显示?
- vfw效率太低了点!希望高手给个directshow写的视频采集,捕获帧图像,记录图像,压缩图像的好例子!
- 线程里可以用timer吗
- 高分求教
- 对面的高手看过来!谁会做一个飞机仪表实时显示的程序?
- MFC的树控件CTreeCtrl设置状态图标点击图标会变?求助
- 遍历对话框控件时,如何判断某一控件是CheckBox?
- 请教CString和String需要什么头文件```
- 一个关于键盘钩子的问题,大家帮忙测试一下!
要調用另一個類的函數 需要看它是什麽類型
如果是普通的成員函數 就需要通過一個實例來調用
如果是靜態成員函數 就可以直接調用
當然也要注意一下訪問權限比如你可以:
class C0
{
public:
static void sfun(){};
void mfun();{}
};class C1
{
public:
void caller()
{
C0 c;
c.mfun();
C0::sfun();
}
}
{
public:
static void sfun(){};
void mfun(){};
};class C1
{
public:
void caller()
{
C0 c;
c.mfun();
C0::sfun();
}
};
非静态函数,用实例不行
静态函数,也不行
我用全局变量也不行
待会我把错误信息贴出来
你可以把要調用的函數訪問聲明在public:下
或者用友元函數解決這個問題
比如class C1
{
public:
void caller(void);
};class C0
{
public:
void func_pub(){
//...
}
protected:
void func_pro(){
//...
}
friend void C1::caller(void);
};void C1::caller(void){
C0 c0;
c0.func_pub();
c0.func_pro();
}int main(void)
{
C1 c1;
return 0;
}