哪位帮忙看一下这段代码,我对c++不是很熟悉。

darwinmarx 2012-02-20 05:34:32
class Base
{
public:
int m_a;
Base(int a=2):m_a(a)
{
printf("A %d ",m_a);
}
virtual ~Base()
{
printf("B %d ",m_a);
}
};
class Derived:public Base
{
public:
Derived(int a=4):Base(a)
{
printf("C %d ",m_a);
}
~Derived()
{
printf("D %d ",m_a);
}
};
int main(void)
{
Base *aa,bb;
aa = new Derived;
delete aa;
return 0;
}

这段代码中的Base(int a=2):m_a(a)和这条语句是什么意思,这个问题应该不难,好心人帮忙看一下,谢谢!
...全文
94 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
pengfoo 2012-02-20
  • 打赏
  • 举报
回复
Base(int a=2):m_a(a)
是构造函数

构造函数 的参数 a默认值是2

冒号后表示 将a的值赋给m_a,是初始化的作用
pengfoo 2012-02-20
  • 打赏
  • 举报
回复
Base(int a=2):m_a(a)
是构造函数

构造函数 的参数 a默认值是2

冒号后表示 将a的值赋给m_a,是初始化的作用
darwinmarx 2012-02-20
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 czh3642210 的回复:]
C/C++ code
Base(int a=2):m_a(a)//这是Base类的构造函数,int a = 2;类似于参数,然后m_a(a),就是令m_a = a;
[/Quote]


还有个问题 在main函数结束是 base类的对象bb会不会自动调用析构函数释放内存
darwinmarx 2012-02-20
  • 打赏
  • 举报
回复
哦 多谢楼上几位
CloundSea 2012-02-20
  • 打赏
  • 举报
回复

Base(int a=2)
{
m_a = a ;
}
面包大师 2012-02-20
  • 打赏
  • 举报
回复
Base(int a=2):m_a(a)//这是Base类的构造函数,int a = 2;类似于参数,然后m_a(a),就是令m_a = a;
badbirdboy 2012-02-20
  • 打赏
  • 举报
回复
把a的值付给m_a就这么简单,另外这时候构造函数,什么是构造函数,自己看书

64,682

社区成员

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

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