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";

。。。。。。。。。。
}
}
如何改正。我知道哪里错了,但是不知道为什么
展开
 我来答
风若远去何人留
推荐于2017-09-06 · 知道合伙人互联网行家
风若远去何人留
知道合伙人互联网行家
采纳数:20412 获赞数:450130
专业C/C++软件开发

向TA提问 私信TA
展开全部
直接定义即可。比如已有一个类class A, 再定义一个类class B,这样在B的定义中,就可以有一个A*类型的成员变量。
比如
class B
{
A * a;

};
这里的B::a就是一个A*类型的指针。
需要注意的是,要使用这种形式的定义,要么A的定义在B的上方,要么在B定义前加一个A类的声明。

class A;
class B
{
A * a;

};
farawayspring
2012-12-21 · TA获得超过116个赞
知道答主
回答量:63
采纳率:0%
帮助的人:24.9万
展开全部
直接在类成员中定义,比如在B类中定义A类指针,A类已经定义,Class B{ A * a};
追问
改如何给改指针分配动态内存?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
2009shibo
推荐于2017-09-28 · 超过17用户采纳过TA的回答
知道答主
回答量:70
采纳率:0%
帮助的人:39万
展开全部
类名 *指针名;
如 在一个类中定义指向另外一个类的指针:
class A {
public:
A();
~A();
.....

B *pt; //这个就是你要的,直接定义就好,但是记得要包含类B 的头文件

}
更多追问追答
追问
那如何给改指针分配动态内存?
追答
我是这么做的:
pt = new B;
这个是在A的构造函数里面定义的,别忘记在A的析构函数里面: if(B)delete pt;
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
至笑k
2012-12-21
知道答主
回答量:95
采纳率:0%
帮助的人:24.7万
展开全部
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() {}

}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式