数组编译时间初始化

时间:2020-01-15 16:42:33

标签: c++

我写了这个程序,但是显示错误

详细信息未在此范围内声明。

如何纠正此代码?

#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;
        }

1 个答案:

答案 0 :(得分:1)

您正在尝试访问details中的Dealer::accept()。但是,detailsmain()函数局部变量。 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...
}
相关问题