请问下,在类中定义了私有成员数组,如何在main函数中给其赋值并输出,我这个代码输出部分好像有问题
#include<iostream>classList{private:intlen;intdata[10];public:voidB(int*values){for(i...
#include<iostream>
class List
{
private:
int len;
int data[10];
public:
void B(int* values)
{
for(int i=0;i<10;i++)
data[i]=values[i];
}
void displist()
{
for(int j=0;j<10;j++)
cout<<data[j]<<" ";
cout<<endl;
}
};
void main()
{
List A;
int a[3]={1,2,3};
A.B(a);
A.displist();
} 展开
class List
{
private:
int len;
int data[10];
public:
void B(int* values)
{
for(int i=0;i<10;i++)
data[i]=values[i];
}
void displist()
{
for(int j=0;j<10;j++)
cout<<data[j]<<" ";
cout<<endl;
}
};
void main()
{
List A;
int a[3]={1,2,3};
A.B(a);
A.displist();
} 展开
3个回答
展开全部
int a[3]={1,2,3};
A.B(a);
void B(int* values)
{
for(int i=0;i<10;i++)
data[i]=values[i];
}
注意这两段 代码 你传的数组只包含了3个元素
而 for(int i=0;i<10;i++)
data[i]=values[i]; 中value[3]到value[10]的时候是没有分配内存的 所以出错
A.B(a);
void B(int* values)
{
for(int i=0;i<10;i++)
data[i]=values[i];
}
注意这两段 代码 你传的数组只包含了3个元素
而 for(int i=0;i<10;i++)
data[i]=values[i]; 中value[3]到value[10]的时候是没有分配内存的 所以出错
追问
我把数组元素数量改为一致后,依然报错如上。。。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
代码肯定有问题,数组越界了,你定义的a是三个元素的数组,但是你调用的时候循环了10次,这是不可以的。
追问
但是主要问题好像还不是数组的事情,因为我没有加displist函数的时候,是可以正常跑的,加了displist函数之后就报错了,而且我将循环次数改为3后依然报错,具体如下。。
error C2065: 'cout' : undeclared identifier
error C2297: '<<' : illegal, right operand has type 'char [2]'
error C2065: 'endl' : undeclared identifier
warning C4552: '<<' : operator has no effect; expected operator with side-effect
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
#include<iostream>
using namespace std;
class List
{
private:
int len;
int data[10];
public:
void B(int* values)
{
for(int i=0;i<3;i++)
data[i]=values[i];
}
void displist()
{
for(int j=0;j<3;j++)
cout<<data[j]<<" ";
cout<<endl;
}
};
void main()
{
List A;
int a[3]={1,2,3};
A.B(a);
A.displist();
}
//注意你的长度一致,你的少了using namespace std;
using namespace std;
class List
{
private:
int len;
int data[10];
public:
void B(int* values)
{
for(int i=0;i<3;i++)
data[i]=values[i];
}
void displist()
{
for(int j=0;j<3;j++)
cout<<data[j]<<" ";
cout<<endl;
}
};
void main()
{
List A;
int a[3]={1,2,3};
A.B(a);
A.displist();
}
//注意你的长度一致,你的少了using namespace std;
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询