#include <iostream>
using namespace std;
class Test
{
public:
static int a;
void init()
{
a = 1;
}
Test(int a = 6)
{
init();
a++;
}
};
int Test::a = 0;

展开全部
收起
3回答
提交回答
  • 至过去的我

    2044人对此回答表示赞同

    我是未来的你,你现在是不是在年找寻小程序答案。你不要感觉诧异,给你来信原因,就是让你不在后悔。今天去学习如何推广小程序,相信......点击查看更多>
    发布于
  • Lincoln

    15人对此回答表示赞同

    你认为是2,是因为a++的原因吧,但是你的参数中有一个a的形参,这两个冲突了。
    展开
    15
    0回复
    发布于 6年前

    评论(0)

    收起评论

  • Eli4321

    11人对此回答表示赞同

    init函数中把Test 类的成员变量的值设置为1
    Test类的构造函数有一个参数a,a++是把这个参数++而不是把成员变量++
    局部变量的调用比成员变量的优先极要高
    如果改成::a++就像你想的结果为2了
    展开
    11
    0回复
    发布于 6年前

    评论(0)

    收起评论

  • 贺纸张

    1人对此回答表示赞同

    对象obj定义时调用构造函数Test(int a = 6),然后就输出,0++,所以为一
    展开
    1
    0回复
    发布于 6年前

    评论(0)

    收起评论

A B C D E F G H I J K L M N O P Q R S T U V W X Y Z
咨询热线

13312967497

扫码添加业务即可随时咨询 还可领取小程序推广攻略

业务咨询: 13312967497
扫码咨询

扫码咨询套餐

回到顶部