
C++中关于一个构造函数的问题 在线等
150.假定一个类的构造函数为“B(intax,intbx):a(ax),b(bx){}”,执行“Bx(1,2),y(3,4);x=y;”语句序列后x.a的值为()。A....
150.假定一个类的构造函数为 “B(int ax, int bx): a(ax), b(bx) {}”,执行 “B x(1,2),y(3,4);x=y;”语句序列后x.a的值为( )。
A. 1 B. 2 C. 3 D. 4 展开
A. 1 B. 2 C. 3 D. 4 展开
展开全部
这是一个简单复制的问题,执行x=y;后,x的数据成员与y的相同,即x.a=3,x.b=4;下面是一个测试程序,你可以运行看看:
#include<iostream>
using namespace std;
class B{
public:
int a;
int b;
B(int ax,int bx):a(ax),b(bx){};
};
int main(){
B x(1,2),y(3,4);
x=y;
cout <<x.a <<endl;
return 0;
}
#include<iostream>
using namespace std;
class B{
public:
int a;
int b;
B(int ax,int bx):a(ax),b(bx){};
};
int main(){
B x(1,2),y(3,4);
x=y;
cout <<x.a <<endl;
return 0;
}
追问
其实a b是两个内嵌对象么?
如果B中还有函数MAX()
那是不是可以B.a.MAX()啊?
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
构造函数只在定义对象时调用;
执行对象x时 ,x.a=1,
执行对象y时,y.a=3,;
执行x=y时,x.a=y.a=3.
最终x.a=3
#include<iostream>
using namespace std;
class B
{
private:
int a,b;
public:
B(int ax, int bx):a(ax),b(bx) { } //这里是参数初始化列表。相当于{a=ax;b=bx;}
void show()
{
cout<<"a="<<a<<endl;
}
};
int main()
{
B x(1,2),y(3,4);
x=y;
x.show();
return 0;
}
执行对象x时 ,x.a=1,
执行对象y时,y.a=3,;
执行x=y时,x.a=y.a=3.
最终x.a=3
#include<iostream>
using namespace std;
class B
{
private:
int a,b;
public:
B(int ax, int bx):a(ax),b(bx) { } //这里是参数初始化列表。相当于{a=ax;b=bx;}
void show()
{
cout<<"a="<<a<<endl;
}
};
int main()
{
B x(1,2),y(3,4);
x=y;
x.show();
return 0;
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
B(int ax, int bx): a(ax), b(bx)
等同于
B(int ax, int bx)
{
a=ax;
b=bx;
}
一般冒号还能用来调用基类的构造函数
等同于
B(int ax, int bx)
{
a=ax;
b=bx;
}
一般冒号还能用来调用基类的构造函数
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
C,3
我试验过
我试验过
追问
能详细解释下么?
前面的a(ax)b(bx)是不是内嵌对象啊?
那后面的语句什么意思怎么执行的?
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询