指向类指针如何 初始化
来源:百度知道 编辑:UC知道 时间:2024/06/06 00:23:40
定义了一个指向类的指针,主要是向调用它的成员,请问如何对这个指针进行初始化,比如我定义的指针是CIcmainDlg *m_pIcmaindlg,如何对它初始化呢?
程序是这样
CIcMian *Icmain=NULL;
Icmain->m_Lamp.SetBitmap(Icmain->hok);
其中m_Lamp是一个静态图像关联的变量,hok是一个HBitmapl类型的变量,已经载入了图像,
每次运行到Icmain->m_Lamp.SetBitmap(Icmain->hok)时候就会出现错误,说指令指向的内存不能为"read",这是什么原因呢?
这个语句是在多文档框架类中的一个函数中,CIcMain是一个子窗口类,我想在框架类中操作子窗口中的这个图像。
下面的方法我都试过了,没有用。请高人指导一下!
程序是这样
CIcMian *Icmain=NULL;
Icmain->m_Lamp.SetBitmap(Icmain->hok);
其中m_Lamp是一个静态图像关联的变量,hok是一个HBitmapl类型的变量,已经载入了图像,
每次运行到Icmain->m_Lamp.SetBitmap(Icmain->hok)时候就会出现错误,说指令指向的内存不能为"read",这是什么原因呢?
这个语句是在多文档框架类中的一个函数中,CIcMain是一个子窗口类,我想在框架类中操作子窗口中的这个图像。
下面的方法我都试过了,没有用。请高人指导一下!
需要定义一个类,然后再把类指针指向这个类的地址,也可以初始化为NULL,但是NULL指针只能调用不涉及类成员变量的类成员函数。
代码示例:
#include <iostream>
using namespace std;
class Test
{
public:
void func(){cout << "hahaha" << endl;}
int get(){return a+b;}
Test():a(1),b(2){}
public:
int a,b;
};
int main()
{
Test Tc;
Test *p = &Tc; //初始化类指针
p->func();
p->get();
Test *k = NULL;
k->func(); //正确,没有调用成员变量,没有使用空的this指针
//k->get(); 错误,this指针为空,通过this指针调用变量所以出错
ret