首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
有如下程序: #include using namespace std; class A { public: static int a; void init() { a = 10; } A(int a = 5) { init
有如下程序: #include using namespace std; class A { public: static int a; void init() { a = 10; } A(int a = 5) { init
admin
2015-07-22
31
问题
有如下程序:
#include
using namespace std;
class A {
public:
static int a;
void init() { a = 10; }
A(int a = 5) { init(); a+=10; }
};
int A::a = 0;
A obj;
int main()
{
cout << obj.a;
return 0;
}
运行时输出的结果是
选项
A、0
B、5
C、15
D、10
答案
D
解析
静态数据成员独立于任何对象而存在,不是类对象的组成部分,普通成员函数可以引用静态数据成员。程序定义了类A,并在A的定义体外初始化A的静态数据成员a=0,构造函数A(int)中的形参a与A::a属于不同的变量,在函数A(int)中,形参a屏蔽了A::a,所以A(int)中引用的变量a是形参,而不是A::a,对a的任何操作都不影响A::a,而成员函数init中引用的是A::a,语句a=10是将A::a赋值为10,所以输出obj.a其实是输出A::a,结果为10;答案为D。
转载请注明原文地址:https://kaotiyun.com/show/vjNp777K
本试题收录于:
二级C题库NCRE全国计算机二级分类
0
二级C
NCRE全国计算机二级
相关试题推荐
要定义数组A,使得其中每个元素的数据依次为:3、9、4、8、0、0、0,错误的定义语句是
与语句cout<<end1;不等价的是
下面关于运算符重载的描述错误的是
下列程序的运行结果为#include<iostream.h>voidmain(){inta=2;intb=a+l;cout<<a/b<<end1;
非成员函数应声明为类的【 】函数才能访问这个类的private成员。
有如下函数模板定义: template<class t> T func(Tx,Ty){return x*x+y*y;} 在下列对func的调用中,错误的是
下述关于数据库系统的叙述中正确的是
下列有关类继承的叙述中,错误的是
随机试题
婴儿胎龄38周,顺产分娩,出生体重2200g,Apgar评分1分钟8分,5分钟9分。母亲有妊娠高血压综合征。若婴儿生后人工喂养,生后第4天出现精神萎靡,纳差,恶心、呕吐,腹胀,大便稀,潜血阳性。诊断为新生儿坏死性小肠结肠炎,下列X线表现属于早期的为
下列属于稳定性骨折的是()
下列摄影技术中的错误表述是
嵌体、冠桥类修复体蜡型铸道设置原则,错误的是
下列说法正确的是:()。
凝汽器组装完毕后,汽侧应进行()。
对于不同类别的银行,中国银监会的干预措施不同,下列说法错误的是()。
坚持科技强警,提高公安队伍的战斗力的途径有()。
()对于治疗相当于学生对于()
WhatisLorraineMelvill’sbusiness?
最新回复
(
0
)