C++里面,含有数组的类对象是怎么赋值的?

额,可能是描述得不清楚。我应该想问的是classbase{private:inta[10];}basec1;basec2;c2=c1;----------->>>>这样是... 额,可能是描述得不清楚。我应该想问的是
class base
{
private:
int a[10];

}

base c1;
base c2;

c2 = c1; ----------->>>>这样是可以的,但是原理是什么?
展开
 我来答
百度网友ec20e48
2013-11-11
知道答主
回答量:12
采纳率:0%
帮助的人:3.9万
展开全部
C++类的对象数组赋值问题  如下:
void main()
{
 CStudent Cs[4]={
  CStudent(1,"张三",80),
  CStudent(2,"李四",75),
  CStudent(3,"王五",95),
  CStudent(4,"小六",62)
 };  //这样就可以赋初值.也可以使用成员函数一个个设置.如下:
/* Cs[0].SetID(1);
 Cs[0].SetName("张三");
 Cs[0].SetScore(80); Cs[1].SetID(2);
 Cs[1].SetName("李四");
 Cs[1].SetScore(75); Cs[2].SetID(3);
 Cs[2].SetName("王五");
 Cs[2].SetScore(95); Cs[3].SetID(4);
 Cs[3].SetName("小六");
 Cs[3].SetScore(62);
*/
 Sort(Cs);
 for(int i=0; i<4; i++)
 {
  Cs[i].Show();
 }}
//选择排序void Sort(CStudent Cs[4])
{
 int i,j,k;
 CStudent t;
 for(i=0; i<3; i++)
 {
  k = i;
  for(j=i+1;j<4;j++)
  {
   if(Cs[k].GetScore()>Cs[j].GetScore())
   {
    k = j;
   }
  }
  if(k != i)
  {
   t = Cs[k];//这里涉及到对象的交换,而对象里又有指针型成员,所以要重载=运算符.
   Cs[k] = Cs[i];
   Cs[i] = t;
  }
 }
}//重载了=运算符CStudent &CStudent::operator=(const CStudent cs)
{
 if(this != &cs)
 {
  ID=cs.ID;
  pName=new char[20];
  strcpy(pName,cs.pName);
  fScore=cs.fScore;
 }
 return *this;
}
来自 (掏包) 爱恋而女装
54zhangxun
推荐于2017-09-13 · TA获得超过684个赞
知道小有建树答主
回答量:374
采纳率:75%
帮助的人:145万
展开全部

含有数组的类对象可以通过以下方法赋值:

  1. 通过构造赋值

例如:

Class A

{

public:

    A(int a[], int n)

    {

        for(int i = 0; i < n; i++)

        {

            m_int[i] = a[i];

        }

    }

    int m_int[5];   

};


使用:

int a[5] = {1,2,3,4,5};

A a(a, 5);


2. 直接赋值

例如:

Class A

{

public:

    int m_int[5];   

};

使用:

A a;

for(int i = 0; i < 5; i++)

{

    a.m_int[i] =i;

}

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
卉头子06
2013-11-11 · TA获得超过243个赞
知道答主
回答量:268
采纳率:0%
帮助的人:44.9万
展开全部
a[0]=1,a[1]=2不就行了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
sitanfufly
2013-11-11 · TA获得超过232个赞
知道小有建树答主
回答量:437
采纳率:0%
帮助的人:251万
展开全部
c2 = c1原理是这两个是类对象,就像int a,b;a=b;
追问
但是如果类里面定义了指针p且对指针进行new的话,这样做是不是就构成了浅构造?
然后数组不也是指针么,为什么数组没事?
追答
类的优点也体现在此啊,c2 = c1是类对象,这相当于给C2赋值,数组i是类成员。处理数组i时,c1.i[2]=c2.i[2],类里用new分配内存?不清楚
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
HarryNR
2013-11-11 · TA获得超过929个赞
知道小有建树答主
回答量:1013
采纳率:33%
帮助的人:795万
展开全部
你直接类里面给个接口不就完事了。。。
接受个数组,然后转存下,完事。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(4)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式