我写了这个程序,但是显示错误
详细信息未在此范围内声明。
如何纠正此代码?
#include<iostream>
using namespace std;
class dealer
{
private:
char first_name[30],last_name[30],city[20],phone_number[20];
public:
void accept()
{
details[0].first_name:"Simran";
details[1].first_name:"Palak";
details[0].last_name:"Arora";
details[1].last_name:"Kaur";
details[0].city:"Amritsar";
details[1].city:"Jalandhar";
details[0].phone_number:1234567890;
details[1].phone_number:8987654321;
}
void display()
{
cout<<"Record of first person"<<endl;
cout<<"First name is "<<details[0].first_name<<endl;
cout<<"Last name is "<<details[0].last_name<<endl;
cout<<"City is "<<details[0].city<<endl;
cout<<"Phone number is "<<details[0].phone_number<<endl;
cout<<"Record of second person"<<endl;
cout<<"First name is "<<details[1].first_name<<endl;
cout<<"Last name is "<<details[1].last_name<<endl;
cout<<"City is "<<details[1].city<<endl;
cout<<"Phone number is "<<details[1].phone_number<<endl;
}
};
int main()
{
dealer details[2];
details[0].accept();
details[1].accept();
details[0].display();
details[1].display();
return 0;
}
答案 0 :(得分:1)
您正在尝试访问details
中的Dealer::accept()
。但是,details
是main()
函数局部变量。 Dealer::accept()
是Dealer
类的成员,只能看到在该类中声明的成员变量。
Dealer
无法看到您在details
中声明的变量main()
。如果希望Dealer
类初始化某些成员,请考虑编写函数来设置那些特定变量。例如,要设置first_name
,请编写如下函数:
void Dealer::setFirstName(std::string name)
{
strcpy(first_name, name.c_str()); // Consider changing the type of first_name to
// std::string. No need to use char arrays in this
// day and age
}
int main()
{
dealer details[2];
details[0].setFirstName("Simran");
details[1].setFirstName("Palak");
// etc...
}