我写了下面employee
类:C++数组,数组赋值
#include<iostream>
#include<string>
using namespace std;
class employee
{
private:
int id;
int salaries[12];
int annualS;
string name;
public:
employee(int id2, string name2, int array[12])
{
id = id2;
name=name2;
salaries = array; //here where the error occurred.
}
~employee()
{
cout<<"Object Destructed";
}
employee()
{
id = 0;
name="Mhammad";
}
int annulalSalary()
{
for(int i=0; i<12; i++)
{
annualS+=salaries[i];
}
return annualS;
}
int tax()
{
return (annualS*10/100);
}
};
void main()
{
int salaries[12];
for(int i=0; i<12; i++)
{
cin>>salaries[i];
}
employee Mohammad(10,"Mohammad",salaries);
cout<< Mohammad.annulalSalary();
cout<< Mohammad.tax();
}
...但是当我编译它,编译器返回以下错误:
cannot convert from 'int []' to 'int [12]'
谁能帮我解决这个问题?
使用'std :: array'或'std :: vector ',它们有'operator ='重载(等等),这意味着你不必自己写分配代码。 –
Borgleader
2014-10-17 19:57:57
问题是你的构造函数中的参数。工资不能被声明为12号。相反,使用'int * salaries'。但是,是的,你应该使用矢量,更好,更安全 –
WindowsMaker
2014-10-17 20:06:29