帮忙看下这种写法会不会带来异常. C++多态问题.

fang60323 2012-05-29 10:33:27
class X
{
virtual void FunctionA(){};
virtual void FunctionB(){};

};

class A : public X
{
void FunctionA();
};

class B : public X
{
void FunctionB();
};


class C
{
public:
C()
{
pA = new A;
pB = new B;
}
C~()
{
delete pA;
delete pB;
}
private:
X *pA;
X *pB;
};


能这样写吗?
...全文
90 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
jackyjkchen 2012-05-29
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 的回复:]
这些类需要虚析构函数.
[/Quote]

看情况吧,他这个例子不用虚析构也没什么问题,但如果基类构造/析构有new/delete等分配清理工作,就得用虚析构了
qq120848369 2012-05-29
  • 打赏
  • 举报
回复
这些类需要虚析构函数.
jinling4388 2012-05-29
  • 打赏
  • 举报
回复
可以倒是可以,但是问题是C++的类默认是private的,你那两个虚函数只能在类内部用,对象调用不了。

64,685

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧