
c++给一个对象赋值是怎么回事
#include<iostream>usingnamespacestd;classA{public:A(intn=10):num(n){cout<<"A"<<endl;}...
#include<iostream>
using namespace std;
class A{
public:
A(int n=10):num(n)
{ cout<<"A"<<endl; }
private:
int num;
};
class B{
public:
B(int m,int n):bn(m),a(n) //这里的构造函数从main传过来的6赋给了a,
//而a是类A的一个对象,那怎么可以赋值呢
{ cout<<"B"<<endl; }
private:
int bn;
A a;
};
int main()
{
A a1;
B b1(2,6);
}
这样给这对象赋值会有什么后果、有什么意义吗,导致哪些值发生变化,会影响到类A中的变量吗 展开
using namespace std;
class A{
public:
A(int n=10):num(n)
{ cout<<"A"<<endl; }
private:
int num;
};
class B{
public:
B(int m,int n):bn(m),a(n) //这里的构造函数从main传过来的6赋给了a,
//而a是类A的一个对象,那怎么可以赋值呢
{ cout<<"B"<<endl; }
private:
int bn;
A a;
};
int main()
{
A a1;
B b1(2,6);
}
这样给这对象赋值会有什么后果、有什么意义吗,导致哪些值发生变化,会影响到类A中的变量吗 展开
展开全部
调用A的构造函数,如果没带参数,则参数默认为10 。 A(int n=10):num(n)
追问
类A的构造函数不是在对象a创建的时候便立刻调用吗,是因为对象a的创建在private中的原因吗,需要一个媒介,如果没有这个媒介,就没有意义 了,是这样吗
追答
呵呵,类B定义中 “A a;" 这只是声明了对像,并没有创建对像,跟private什么的没有关系,真正创建对像a是在调用B的构造函数时,明白?
展开全部
B构造函数:B(int m,int n):bn(m),a(n),A(){cout<<"B"<<endl;} !!! 可以赋值
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
类A的一个对象a 作为B的私有成员,所以可以赋值啊
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
调用A的构造函数
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询