Archives
Trending
Support
Login
clear text
XML
Django
JavaScript
MATLAB
C
C++
C#
Python
SQL
Shell
Bash
Markdown
YAML
JSON
HTML
CSS
PHP
Java
Ruby
Go
Rust
Swift
Kotlin
Arduino
TypeScript
Perl
Autohotkey
Lua
SQF
R
Scala
Haskell
Groovy
Dart
Clojure
VB.NET
Objective-C
PowerShell
Bash
CoffeeScript
Verilog
#include
#include
using namespace std; class Hartie { protected: char* m_numeFabrica; int m_pret; public: Hartie(const char* nume = "", int pret = 0) : m_pret(pret) { m_numeFabrica = new char[strlen(nume) + 1]; strcpy(m_numeFabrica, nume); } virtual ~Hartie() { delete[] m_numeFabrica; } virtual void afisare() const { cout << "Hartie: " << m_numeFabrica << ", Pret: " << m_pret << endl; } virtual int getPret() const { return m_pret; } }; class Carte : virtual public Hartie { protected: float m_greutate; int m_pret; // Pret propriu public: Carte(const char* nume = "", int pretHartie = 0, int pretCarte = 0, float greutate = 0) : Hartie(nume, pretHartie), m_pret(pretCarte), m_greutate(greutate) {} void afisare() const override { cout << "Carte: " << m_numeFabrica << ", Pret hartie: " << Hartie::getPret() << ", Pret carte: " << m_pret << ", Greutate: " << m_greutate << endl; } int getPret() const override { return m_pret; } }; class Coperta : virtual public Hartie { protected: float m_greutate; int m_pret; // Pret propriu public: Coperta(const char* nume = "", int pretHartie = 0, int pretCoperta = 0, float greutate = 0) : Hartie(nume, pretHartie), m_pret(pretCoperta), m_greutate(greutate) {} void afisare() const override { cout << "Coperta: " << m_numeFabrica << ", Pret hartie: " << Hartie::getPret() << ", Pret coperta: " << m_pret << ", Greutate: " << m_greutate << endl; } int getPret() const override { return m_pret; } }; class CarteSiCoperta : public Carte, public Coperta { char* m_titluCarte; public: CarteSiCoperta(const char* nume = "", int pretHartie = 0, int pretCarte = 0, int pretCoperta = 0, float greutateCarte = 0, float greutateCoperta = 0, const char* titlu = "") : Hartie(nume, pretHartie), Carte(nume, pretHartie, pretCarte, greutateCarte), Coperta(nume, pretHartie, pretCoperta, greutateCoperta) { m_titluCarte = new char[strlen(titlu) + 1]; strcpy(m_titluCarte, titlu); } ~CarteSiCoperta() { delete[] m_titluCarte; } void afisare() const override { cout << "Carte si Coperta: " << m_titluCarte << ", Pret total: " << getPret() << endl; } int getPret() const override { return Hartie::getPret() + Carte::getPret() + Coperta::getPret(); } }; int main() { const int N = 5; Hartie* elemente[N]; // Crearea obiectelor elemente[0] = new Hartie("FabricaA", 10); elemente[1] = new Carte("FabricaB", 15, 20, 0.5); elemente[2] = new Coperta("FabricaC", 10, 25, 0.3); elemente[3] = new CarteSiCoperta("FabricaD", 10, 30, 20, 1.0, 0.5, "Titlu1"); elemente[4] = new CarteSiCoperta("FabricaE", 5, 15, 10, 0.8, 0.4, "Titlu2"); // Afișarea elementelor cout << "Elementele initiale:\n"; for (int i = 0; i < N; ++i) { elemente[i]->afisare(); } // Sortarea elementelor după preț for (int i = 0; i < N - 1; ++i) { for (int j = i + 1; j < N; ++j) { if (elemente[i]->getPret() > elemente[j]->getPret()) { swap(elemente[i], elemente[j]); } } } // Afișarea elementelor sortate cout << "\nElementele sortate dupa pret:\n"; for (int i = 0; i < N; ++i) { elemente[i]->afisare(); } // Eliberarea memoriei for (int i = 0; i < N; ++i) { delete elemente[i]; } return 0; }
Mark as private (unlisted)
for 30 minutes
for 6 hours
for 1 day
for 1 week
for 1 month
for 1 year
everlasting (like CCCP)