c++如何在一个类中定义指向另外一个类的指针
DataRow类的构造函数带一个参数。classDataTable{DataRow*row1;public:row1=newDataRow(4);DataRow*NewR...
DataRow 类的构造函数带一个参数。
class DataTable
{
DataRow *row1;
public:
row1=new DataRow(4);
DataRow *NewRow()
{
row1->cell(0)="111-11-1234";
。。。。。。。。。。
}
}
如何改正。我知道哪里错了,但是不知道为什么 展开
class DataTable
{
DataRow *row1;
public:
row1=new DataRow(4);
DataRow *NewRow()
{
row1->cell(0)="111-11-1234";
。。。。。。。。。。
}
}
如何改正。我知道哪里错了,但是不知道为什么 展开
4个回答
展开全部
直接在类成员中定义,比如在B类中定义A类指针,A类已经定义,Class B{ A * a};
追问
改如何给改指针分配动态内存?
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
类名 *指针名;
如 在一个类中定义指向另外一个类的指针:
class A {
public:
A();
~A();
.....
B *pt; //这个就是你要的,直接定义就好,但是记得要包含类B 的头文件
}
如 在一个类中定义指向另外一个类的指针:
class A {
public:
A();
~A();
.....
B *pt; //这个就是你要的,直接定义就好,但是记得要包含类B 的头文件
}
更多追问追答
追问
那如何给改指针分配动态内存?
追答
我是这么做的:
pt = new B;
这个是在A的构造函数里面定义的,别忘记在A的析构函数里面: if(B)delete pt;
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
typedef int (CallBack)(void* aParam);
class B
{
public:
static int fun(void* Param){};
};
class A
{
A(){m_CallBack = B::fun;}
public:
CallBack* m_CallBack;
};
你这种情况一般都会使用观察者模式来做Eg
class AObserver
{
public:
virtual void OnANotification() = 0;
}
class A
{
public:
void SetObser(AObserver* obser)(observer = obser;}
private:
AObserver* observer;
}
class B : public AObserver
{
public
void OnANotification() {}
}
class B
{
public:
static int fun(void* Param){};
};
class A
{
A(){m_CallBack = B::fun;}
public:
CallBack* m_CallBack;
};
你这种情况一般都会使用观察者模式来做Eg
class AObserver
{
public:
virtual void OnANotification() = 0;
}
class A
{
public:
void SetObser(AObserver* obser)(observer = obser;}
private:
AObserver* observer;
}
class B : public AObserver
{
public
void OnANotification() {}
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询