C++打印出对象错误

C++ print out objects error

本文关键字:错误 对象 打印 C++      更新时间:2023-10-16

我卡在将对象 Meja1 和 Meja2 打印到类 Informasi 中。如何打印对象Meja1.print_Meja(); and Meja2.print_Meja(); 请告诉我如何将我的代码编写成人类可读的编码风格?

#include <iostream>
#include <string.h>
using namespace std;
class Inventaris {
private:
    string Jenis;
    string Warna;
    string Keadaan;

public:
        void setInventaris (string a, string u, string g)
    {
        Jenis=a;
        Warna=u;
        Keadaan=g;
    }
       string getJenis()
    {
        return Jenis;
    }
    string getWarna()
    {
        return Warna;
    }
    string getKeadaan()
    {
        return Keadaan;
    }
    void cetak ()
    {
        cout<<"Info Inventaris adalah :"<<endl;
        cout<<"Jenis            : "<<getJenis()<<endl;
        cout<<"Warna            : "<<getWarna()<<endl;
        cout<<"Keadaan      : "<<getKeadaan()<<endl;
     }

};
class Kursi : public Inventaris {
public:
    void print_Kursi(){
    hitung++;
        cout << "Informasi kursi adalah" <<endl;
        cout<<"Jenis            : "<<getJenis()<<endl;
        cout<<"Warna            : "<<getWarna()<<endl;
        cout<<"Keadaan      : "<<getKeadaan()<<endl;
    }
    static int hitung;
    static getHitung()
    {
        return hitung;
    }
};
class Meja : public Inventaris {
public:
    void print_Meja(){
        cout << "Informasi Meja adalah" <<endl;
        cout<<"Jenis            : "<<getJenis()<<endl;
        cout<<"Warna            : "<<getWarna()<<endl;
        cout<<"Keadaan      : "<<getKeadaan()<<endl;
        hitung_meja++;
    }
    static int hitung_meja;
    static getHitung_meja()
    {
        return hitung_meja;
    }
};
class Informasi : public Meja, public Kursi {
public:
    void print_info(){
        cout << "Informasi" <<endl;
        cout << "Jumlah Meja    = " << Meja::getHitung_meja() << endl;
        Meja1.print_Meja(); // how I print object Meja1 and Meja2
        Meja2.print_Meja();
        cout << "Jumlah Kursi    = " << Kursi::getHitung() << endl;
    }
};
int Kursi::hitung = 0;
int Meja::hitung_meja = 0;
int main() {
    Kursi Kursi1;
    Kursi1.setInventaris("Kursi goyang","Merah muda", "Bekas");
    Kursi1.print_Kursi();
    cout << endl;
    Kursi Kursi2;
    Kursi2.setInventaris("Kursi kakek","reyot", "Bekas");
    Kursi2.print_Kursi();
    cout << endl;
    Meja Meja1;
    Meja1.setInventaris("Meja Antik","Coklat tua","Bekas");
    Meja1.print_Meja();
    cout << endl;
    Meja Meja2;
    Meja2.setInventaris("Meja Coffee","Hijau Robek","Bekas");
    Meja2.print_Meja();
    cout << endl;
    Informasi info;
    info.print_info();
}

我修复了您的代码,并制作了Meja1Meja2全局声明,以便main()Informasi类都可以访问它们。

#include <iostream>
#include <string>
using namespace std;
class Inventaris {
private:
    string Jenis;
    string Warna;
    string Keadaan;

public:
    void setInventaris(string a, string u, string g)
    {
        Jenis = a;
        Warna = u;
        Keadaan = g;
    }
    string getJenis()
    {
        return Jenis;
    }
    string getWarna()
    {
        return Warna;
    }
    string getKeadaan()
    {
        return Keadaan;
    }
    void cetak()
    {
        cout << "Info Inventaris adalah :" << endl;
        cout << "Jenis            : " << getJenis() << endl;
        cout << "Warna            : " << getWarna() << endl;
        cout << "Keadaan      : " << getKeadaan() << endl;
    }

};
class Kursi : public Inventaris {
public:
    void print_Kursi() {
        hitung++;
        cout << "Informasi kursi adalah" << endl;
        cout << "Jenis            : " << getJenis() << endl;
        cout << "Warna            : " << getWarna() << endl;
        cout << "Keadaan      : " << getKeadaan() << endl;
    }
    static int hitung;
    static int getHitung()   // <--- FIXED!
    {
        return hitung;
    }
};
class Meja : public Inventaris {
public:
    void print_Meja() {
        cout << "Informasi Meja adalah" << endl;
        cout << "Jenis            : " << getJenis() << endl;
        cout << "Warna            : " << getWarna() << endl;
        cout << "Keadaan      : " << getKeadaan() << endl;
        hitung_meja++;
    }
    static int hitung_meja;
    static int getHitung_meja()   // <--- FIXED!
    {
        return hitung_meja;
    }
};
Meja Meja1;   // <--- Global declaration accessible by main() and Informasi
Meja Meja2;   // <--- Global declaration accessible by main() and Informasi
class Informasi : public Meja, public Kursi {
public:
    void print_info() {
        cout << "Informasi" << endl;
        cout << "Jumlah Meja    = " << Meja::getHitung_meja() << endl;
        Meja1.print_Meja();
        Meja2.print_Meja();
        cout << "Jumlah Kursi    = " << Kursi::getHitung() << endl;
    }
};
int Kursi::hitung = 0;
int Meja::hitung_meja = 0;
int main() {
    Kursi Kursi1;
    Kursi1.setInventaris("Kursi goyang", "Merah muda", "Bekas");
    Kursi1.print_Kursi();
    cout << endl;
    Kursi Kursi2;
    Kursi2.setInventaris("Kursi kakek", "reyot", "Bekas");
    Kursi2.print_Kursi();
    cout << endl;
    Meja1.setInventaris("Meja Antik", "Coklat tua", "Bekas");
    Meja1.print_Meja();
    cout << endl;
    Meja2.setInventaris("Meja Coffee", "Hijau Robek", "Bekas");
    Meja2.print_Meja();
    cout << endl;
    Informasi info;
    info.print_info();
}