C++เรียนที่มีสองคนฟังก์ชัน. Allocating ความทรงจำอยู่ในหลัก

0

คำถาม

ดังนั้นฉันกำลังพยายามแก้ปัญหาตามงาน:

Task

ด้านล่างคือรหัสที่ฉันมาอยู่ด้วย ฉันมีปัญหาเรื่องการจัดเก็บข้อมูลอย่างถูกต้องและผมไม่แน่ใจว่าจะวางตรงไหนที่อ่าน()และส่งออกฟังก์ชัน(). นี่อาจจะไม่ใช่ทั้งหมดเป็นอย่างลำบากแต่ฉันยังไม่แน่ใจ ใครก็ได้อาจจะช่วยใบ้ให้ผมหน่อ? ขอบคุณ!

 #include <iostream>
#include <iomanip>

using namespace std;

class Employee
{
public:
    string name, department;
    int age;

    void output(string &a, int &b, string &c)
    {
        cout << name << endl;
        cout << "Age: " << age << " years" << endl;
        cout << "Department: " << department << endl;
    }

    void read(int &n)
    {
            cout << "Enter number, last name and first name:";
            cin >> name;

            cout << "Enter age:";
            cin >> age;

            cout << "Enter department:";
            cin >> department;
        }
};

int main() {
    int n;
    cout << "Enter number of employees: ";
    cin >> n;
    Employee* o = new Employee;
    Employee employee;



   delete o;
}
c++ c++14 class dynamic
2021-11-23 19:11:33
1

คำตอบที่ดีที่สุด

0

โดยไม่มีกำลังรหัสของคุณดูค่อนข้างใกล้ชิดเป็นทำงานทางออก คุณเก็บข้อมูลในช่องข้อมูลของตัวอย่างของลูกจ้างของชั้นเรียน

ซึ่งคุณกำลังจัดเก็ที่ไหนสักแห่งในห้องชื่นชม. และเข้าถึงกับ pointer โอ

บางคำแนะนำ:

นั่นคือไม่จำเป็นต้องผ่านอะไรเข้าไปในอ่านฟังก์ชันมันคืออ่านหนึ่งในลูกจ้างรายละเอียดต่อหนึ่งโทรมา

ถ้าคุณต้องการสร้างหลายพนักงานงั้นคุณคงต้องการสร้างเว็กเตอต้องหยุดพวกมันอยู่ในนั้นสำหรับเรื่องนั้นวิ่ง n ครั้งและข้างในนั้นสำหรับวงสร้างใหม่ลูกจ้างของโทรหาพวกเขาอ่านและผลส่งออกฟังก์ชันและเพิ่มพวกเขาต้องเว็กเตอร์(มิเช่นนั้นคุณจะปล่อยชี้ประเด็นของคุณและมีความทรงจำที่รั่ว).

ใช้โอ->อ่าน()จะ dereference ของคุณ pointer และเรียกมันอ่านฟังก์ชัน.

ช่องข้อมูลของพนักงานที่ดีที่สุดให้เป็นส่วนตัวตัวแปรสมาชิก. ฉัน E ชื่อของแผนกอายุเท่านี้ เรื่องนี้จะยังคง compile แล้วก็วิ่งแต่มันจะดีกว่าการออกแบบเพื่อให้เรื่องส่วนตัวนอกจากพวกเขาจำเป็นต้องเป็นสาธารณะ

ที่เพิ่มมานอกเหนือจากฉันไม่คิดว่าคุณต้องการคสุดท้ายที่คุณต้องไปแล้วสร้างใหม่พนักงานและ pointer กับมันอยู่ในเส้นทางด้านบน

lastly ตอนที่คุณจะไปเพื่อลบแค่ iterate ผ่านของคุณเว็กเตอของลูกจ้างและลบออกกันหนึ่ง

สั้นๆตรงเวลาในช่วงเวลาแบบนี้แต่ฉันจะพยายามจะวนกลับไปและเพิ่มการหัสตัวอย่างทีหลังถ้าคุณต้องการมันได้

2021-11-24 20:52:16

ในภาษาอื่นๆ

หน้านี้อยู่ในภาษาอื่นๆ

Русский
..................................................................................................................
Italiano
..................................................................................................................
Polski
..................................................................................................................
Română
..................................................................................................................
한국어
..................................................................................................................
हिन्दी
..................................................................................................................
Français
..................................................................................................................
Türk
..................................................................................................................
Česk
..................................................................................................................
Português
..................................................................................................................
中文
..................................................................................................................
Español
..................................................................................................................
Slovenský
..................................................................................................................

ดังอยู่ในนี้หมวดหมู่

ดังคำถามอยู่ในนี้หมวดหมู่