请教怎么动态的创建一个对象,然后全局可以使用这个对象的成员
请问如何动态的创建一个对象,然后全局可以使用这个对象的成员!
请问下能不能通过if判断,创造一个对象,这个对象可以全局都调用它的成员函数呢?
------解决方案--------------------
看不懂,你的代码显然是错的,根据你的代码我想就是这样改:
------解决方案--------------------
或者你的意思是Obj1动态生成,那么最好作为参数传给函数:
或者:
这个就要注意对象生命周期了。
这和“全局调用”没有任何关系啊。
------解决方案--------------------
class ClassAPP
public:
static ClassAPP* GetAPtr()
{
if(m_pA == NULL)
m_pA = new ClassAPP;
return m_pA;
}
protect:
ClassAPP(){}
~ClassAPP()
{
if(m_pA != NULL)
delete m_pA;
}
private:
ClassAPP *m_pA;
}
ClassAPP* ClassAPP::m_pA = NULL;
void CTestDlg::fuctionA
{
while (true)
{
ClassAPP *pA = ClassAPP::GetAPtr();
fuctionB;
}
}
int fuctionB(a,b)
{
ClassAPP *pA = ClassAPP::GetAPtr();
pA->m_fuction1;
pA->m_fuction2;
}
把你的ClassAPP变成这样的类
------解决方案--------------------
一堆笨B,看了就来气
一、你在Afxstd.cpp里定义对象的指针
CAAAAAA *obj=NULL;
二、在Afxstd.h里把他声明称外部边量
extern CAAAAAA *obj;
现在你动态创建对象
CAAAAAA *xxxx=new CAAAAAA;
然后 obj=xxxx;
你在使用的地方要这样
if(obj)
{
//这里就是你使用的地方了
}
请问下能不能通过if判断,创造一个对象,这个对象可以全局都调用它的成员函数呢?
------解决方案--------------------
看不懂,你的代码显然是错的,根据你的代码我想就是这样改:
classAPP Obj1;
void functionA()
{
while (true)
{
function B(a,b);
}
}
int functionB(a,b)
{
Obj1.m_fuction1;
Obj1.m_fuction2;
}
------解决方案--------------------
或者你的意思是Obj1动态生成,那么最好作为参数传给函数:
void functionA()
{
while (true)
{
classAPP* Obj1 = new classAPP();
function B(a,b);
delete Obj1;
Obj1 = NULL;
}
}
int functionB(a, b, pObj)
{
pObj->m_fuction1;
pObj->m_fuction2;
}
或者:
classAPP* Obj1 = NULL;
void functionA()
{
while (true)
{
Obj1 = new classAPP();
function B(a,b);
delete Obj1;
Obj1 = NULL;
}
}
int functionB(a,b)
{
Obj1->m_fuction1;
Obj1->m_fuction2;
}
这个就要注意对象生命周期了。
这和“全局调用”没有任何关系啊。
------解决方案--------------------
class ClassAPP
public:
static ClassAPP* GetAPtr()
{
if(m_pA == NULL)
m_pA = new ClassAPP;
return m_pA;
}
protect:
ClassAPP(){}
~ClassAPP()
{
if(m_pA != NULL)
delete m_pA;
}
private:
ClassAPP *m_pA;
}
ClassAPP* ClassAPP::m_pA = NULL;
void CTestDlg::fuctionA
{
while (true)
{
ClassAPP *pA = ClassAPP::GetAPtr();
fuctionB;
}
}
int fuctionB(a,b)
{
ClassAPP *pA = ClassAPP::GetAPtr();
pA->m_fuction1;
pA->m_fuction2;
}
把你的ClassAPP变成这样的类
------解决方案--------------------
一堆笨B,看了就来气
一、你在Afxstd.cpp里定义对象的指针
CAAAAAA *obj=NULL;
二、在Afxstd.h里把他声明称外部边量
extern CAAAAAA *obj;
现在你动态创建对象
CAAAAAA *xxxx=new CAAAAAA;
然后 obj=xxxx;
你在使用的地方要这样
if(obj)
{
//这里就是你使用的地方了
}