首页 > 解决方案 > C++ 将成员作为变量传递给 Main ()

问题描述

我在网上找到了这个例子。我知道可以在PutData()成员函数中获得数组的总和,但是如何将其传递给main()以正确用作变量?我知道最好有一个 sum 的成员函数,但为了简单起见,我认为您应该了解我想要做什么。

我已经成功地调用了 main 中的成员,但是我怎样才能将它分配给一个新的变量来使用main()呢?

先感谢您

#include<iostream>


class Employee
{
    int Id;
    char Name[25];
    int Age;
    long Salary;

    public:
    void GetData()      
    {
        cout<<"\n\tEnter Employee Id : ";
        cin>>Id;

        cout<<"\n\tEnter Employee Name : ";
        cin>>Name;

        cout<<"\n\tEnter Employee Age : ";
        cin>>Age;

        cout<<"\n\tEnter Employee Salary : ";
        cin>>Salary;
    }

    void PutData()           
    {
        sum = id + age;
        cout<<"\n"<<Id<<"\t"<<Name<<"\t"<<Age<<"\t"<<Salary;
        cout << sum;
    }    
};


int main()
{
    int i;

    Employee E[3];           

    for(i=0;i<3;i++)
    {
        cout<<"\nEnter details of "<<i+1<<" Employee";
        E[i].GetData();
    }

    cout<<"\nDetails of Employees";
    for(i=0;i<3;i++)
    E[i].PutData();
}

编辑:谢谢大家的帮助!在评论的帮助下,我能够单独获得每个员工的总和。

我创建了一个不同的成员

int GetSum()
{
return Age + Id;
}

我的主要是:

int sum1 = P[0].GetSum();
cout << "\nSUM OF TEAM 1:  " << sum1;

int sum2 = P[1].GetSum();
cout << "\nSUM OF TEAM 2:  " << sum2;

标签: c++object

解决方案


默认情况下,类的成员是private,即您不能直接访问实例的成员。所以你有两个选择。

添加成员函数

因此,正如评论中其他人所建议的那样,您可以添加一个类函数,该函数返回两个成员的总和。

class Employee
{
    int Id;
    char Name[25];
    int Age;
    long Salary;

    public:
    void GetData();
    void PutData();
    int  GetSum();
}

int Employee::GetSum(){
    return Id + Age;
}

然后在main()你调用函数来得到结果。

int main() {
    Employee E;
    E.GetData();
    std::cout << "Sum is " << E.GetSum() << std::endl;

    return 0;
}

制作字段public

public 可以直接访问的类成员。但是警告,当涉及到面向对象编程中的封装时,这不是一个好的做法。

class Employee
{
    char Name[25];
    long Salary;

    public:
    int Id;
    int Age;
    void GetData();
    void PutData();
}

然后您可以使用以下.运算符获取它们main()

int main() {
    Employee E;
    E.GetData();
    std::cout << "Sum is " << E.id + E.age << std::endl;

    return 0;
}

推荐阅读