1. Τι είναι κλάση, τί είναι αντικείμενο;

Κλάση είναι το σύνολο των ιδιοτήτων και των μεθόδων κάποιων αντικειμένων

και αντικείμενο είναι ένα στιγμιότυπο της κλάσης, ένα συγκεκριμένο στοιχείο της κλάσης.

2. Κατατάξτε τα παρακάτω στη σωστή κατηγορία (κλάση, αντικείμενο)

πχ. φυτό, ορτανσία, ρενώ, αυτοκίνητο, λεωφορείο, ευρώ, νόμισμα

κλάση: φυτό, αυτοκίνητο, λεωφορείο, νόμισμα

αντικείμενο, ορτανσία, ευρώ, Ρενώ

3. Δημιουργήστε την δημόσια κλάση myBox με πεδία τις διαστάσεις x, y, z.

4. Δημιουργήστε την δημόσια κλάση myPet με πεδίo το όνομα (name) και την μέθοδο petshowOf που εμφανίζει το μήνυμα myPet.name + "is beautiful".

#include <iostream>
using namespace std;

class MyPet {         // The class
  public:               // Access specifier
    string name;
    void petShowOf(string name) {   // Method/function
      cout << name << " is beautiful";
    }
};

int main() {

  MyPet myObj;     // Create an object of MyClass
  myObj.name = "Azor";
  myObj.petShowOf(myObj.name);  // Call the method
  return 0;
}

 5. Tί είναι η μέθοδος Constructor;

Η συγκεκριμένη μέθοδος εκτελείται μόλις δημιουργήθει ένα αντικείμενο της κλάσης.

6. Ποιες επιλογές δήλωσεις έχει ο Access Specifier; (Ενθυλάκωση - Encapsulation)

1. public

2. private

3. protected

7. Περιγράψτε την έννοια της ενθυλάκωσης

Ενθυλάκωση είναι η ιδιότητα της αντικειμενοστραφούς σχεδίασης οντοτήτων και αντικειμένων όπου οι οντότητες/αντικείμενα μπορούν να συνδέονται μεταξύ τους χωρίς απαραίτητα να είναι ορατά όλα τα δεδομένα τους.

8. Περιγράψτε την έννοια της κληρονομικότητας. Δώστε ένα παράδειγμα.

#include <iostream>
#include <string>
using namespace std;

// Base class
class Vehicle {
  public:
    string brand ;
    void honk() {
      cout << "Tuut, tuut! \n" ;
    }
};

// Derived class
class Car: public Vehicle {
  public:
    string model;
};

int main() {
  Car myCar;
  myCar.brand= "Ford";
  myCar.model= "Mustang";
  myCar.honk();
  cout << myCar.brand + " " + myCar.model;
  return 0;
}

Οι κλάσεις έχουν την δυνατότητα να "κληρονομούν"/συμπεριλαμβάνουν ιδιότητες και μεθόδους άλλων γενικότερων κλάσεων. πχ.

9. Περιγράψτε την έννοια του πολυμορφισμού. Δώστε ένα παράδειγμα.

#include <iostream>
#include <string>
using namespace std;

// Base class
class Schema {
  public:
    int vasi;
    int ypsos;
    int emvado(int vasi, int ypsos) {
      int e;
      e = vasi * ypsos;
      return e;
    }
};

// Derived class
class Square : public Schema {
  public:
    int emvado(int vasi) {
        int e;
      e = vasi * vasi;
      return e;
    }
};

// Derived class
class Triangle : public Schema {
  public:
    float emvado(int vasi, int ypsos) {
      float e;
      e = (vasi * ypsos) / 2.0;
      return e;
    }
};

int main() {
  int emv;
  float emvt;
  Schema mySchema;
  mySchema.vasi=3;
  mySchema.ypsos=4;
 
  Square mySquare;
  mySquare.vasi = 5;
 
  Triangle myTriangle;
  myTriangle.vasi=2;
  myTriangle.ypsos=3;

  emv = mySchema.emvado(mySchema.vasi, mySchema.ypsos);
  cout << emv << endl;
  emvt = myTriangle.emvado(myTriangle.vasi, myTriangle.ypsos);
  cout << emvt ;
 
  return 0;
}

10. Διαχείριση αρχείων. Εγγράψτε σε αρχείο τα παρακάτω δεδομένα:

"Files can be tricky, but it is fun enough!"

 

#include <iostream>

#include <fstream>

using namespace std;

 

int main() {

  // Create and open a text file

  ofstream MyFile("filename.txt");

 

  // Write to the file

  MyFile << "Files can be tricky, but it is fun enough!";

 

  // Close the file

  MyFile.close();

}

11. Διαχείριση αρχείων. Ανοίξτε και διαβάστε το περιεχόμενου του αρχείου filename.txt

// Create a text string, which is used to output the text file

 

#include <iostream>

#include <fstream>

using namespace std;

 

int main() {

string myText;

 

// Read from the text file

ifstream MyReadFile("filename.txt");

 

// Use a while loop together with the getline() function to read the file line by line

while (getline (MyReadFile, myText)) {

  // Output the text from the file

  cout << myText;

}

// Close the file

MyReadFile.close();

 

12. Δημιουργήστε το πρόγραμμα που διαβάζει τη πλευρά ενός τετραγώνου και υπολογίζει και εμφανίζει το εμβαδόν του.

#include <iostream>

using namespace std;

int main()
{
    int plevra = 6;
    int env;
    
    env = plevra * plevra;
    
    cout<< env;

    return 0;
}

13. Μεταφέρετε τον υπολογισμό του εμβαδού της (12) σε συνάρτηση που καλείται από την main.

#include <iostream>
using namespace std;

int emvadon(int plevra) {
    int env;
    
    env = plevra * plevra;
    return env;
}

int main()
{
    int plevra = 6;
    int en;
    en = emvadon(plevra);
    cout<< en;

    return 0;
}

 14. Μεταφέρετε το υπολογισμό του εμβαδού σε μέθοδο της κλάσης Square με πεδία την πλευρά και μέθοδο τον υπολογισμό του εμβαδού.

#include <iostream>
using namespace std;
class Square {
public:
    int plevra;
    int emvadon(int plevra) {
        int env;
        env = plevra * plevra;
    return env;
    }
};
    
int main()
{
    int en;
    Square mySquare;
    
    mySquare.plevra = 6;
    en = mySquare.emvadon(mySquare.plevra);
    cout<< en;

    return 0;
}

15. Δημιουργήστε την υπερκλάση Schema και μεταφέρετε σε αυτήν την μέθοδο του υπολογισμού εμβαδού και δηλώστε την κλάση Square κληρονόμο της.

/******************************************************************************

Welcome to GDB Online.
GDB online is an online compiler and debugger tool for C, C++, Python, Java, PHP, Ruby, Perl,
C#, OCaml, VB, Swift, Pascal, Fortran, Haskell, Objective-C, Assembly, HTML, CSS, JS, SQLite, Prolog.
Code, Compile, Run and Debug online from anywhere in world.

*******************************************************************************/
#include <iostream>
using namespace std;

class Schema {
public:
    int plevra;
    int emvadon(int plevra) {
        int env;
        env = plevra * plevra;
    return env;
    }
};

class Square : public Schema {
} ;  

int main()
{
    int en;
    Square mySquare;
    
    mySquare.plevra = 6;
    en = mySquare.emvadon(mySquare.plevra);
    cout<< en;

    return 0;
}