恳请高手帮帮忙,关于vc++6.0类函数的调用问题!
现有类A,B,C。ClassA{public:draw()}ClassB{Aa;public:drawReal(){a.draw();}}ClassC{Aa;public...
现有类A,B,C。
Class A
{
public:draw()
}
Class B
{
A a;
public:drawReal()
{
a.draw();
}
}
Class C
{
A a;
public:Render()
{
a.draw();
}
}
问题是:我想用类B里面a用类C里面的a,怎么办呢?
我想类B里面a用类C里面的a,怎么办?
也就是说,他们是一个对象,不管在什么情况下。 展开
Class A
{
public:draw()
}
Class B
{
A a;
public:drawReal()
{
a.draw();
}
}
Class C
{
A a;
public:Render()
{
a.draw();
}
}
问题是:我想用类B里面a用类C里面的a,怎么办呢?
我想类B里面a用类C里面的a,怎么办?
也就是说,他们是一个对象,不管在什么情况下。 展开
展开全部
确定一个B,C初始化的顺序,然后将先初始化的那个对象中的A的对象的指针赋给后面的那个,就可以了。眼外之意就是后面的那个(比如C),应该这样写:
Class C
{
C(A* pa_)
{
ASSERT(pa_);
pa = pa_;
}
A* pa;
public:Render()
{
ASSERT(pa);
pa->draw();
}
}
Class C
{
C(A* pa_)
{
ASSERT(pa_);
pa = pa_;
}
A* pa;
public:Render()
{
ASSERT(pa);
pa->draw();
}
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
简单死:这样:
class A
{
public:
  void Draw();
}
class CInterface
{
protected:
   A a;
public:
   virtual void Draw() { a.Draw(); }
};
class B : public CInterface
{
public:
    virtual void Draw()
    { CInterface::Draw(); }
};
class B : public CInterface
{
public:
    virtual void Draw()
    {  Cinterface::Draw }
};
class A
{
public:
  void Draw();
}
class CInterface
{
protected:
   A a;
public:
   virtual void Draw() { a.Draw(); }
};
class B : public CInterface
{
public:
    virtual void Draw()
    { CInterface::Draw(); }
};
class B : public CInterface
{
public:
    virtual void Draw()
    {  Cinterface::Draw }
};
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
在类B 、C中,a是一个数据成员,其类型是class A
你不妨按照结构体来进行理解一下,就明白了
你不妨按照结构体来进行理解一下,就明白了
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你有没有想过继承呢?
如果C继承于B,那么C的a就是B的a
如果C继承于B,那么C的a就是B的a
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
定义对象后可以直接赋值吧。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询