%------------------------------------------------------------------- // αρχείο Ratio.h #pragma once class Ratio { public: Ratio(); // κατασκευή Ratio(int); // κατασκευή Ratio(int,int); // κατασκευή ~Ratio(); // καταστροφή int getNumerator(); // πρόσβαση int getDenominator(); // πρόσβαση void setNumerator(int); // πρόσβαση void setDenominator(int); // πρόσβαση double toDouble(); // πραγματική τιμή void invert(); // αντιστροφή void print(); // εκτύπωση private: int num; // αριθμητής int den; // παρανομαστής }; %------------------------------------------------------------------- // αρχείο Ratio.cpp #include #include "Ratio.h" Ratio::Ratio() { num=0; den=1; } // κατασκευή Ratio::Ratio(int i) { num=i; den=1; } // κατασκευή Ratio::Ratio(int i,int j) { num=i; den=j; } // κατασκευή Ratio::~Ratio() { } // άδεια μέθοδος καταστροφής int Ratio::getNumerator() { // πρόσβαση return num; } int Ratio::getDenominator() { // πρόσβαση return den; } void Ratio::setNumerator(int i) { // πρόσβαση num=i; } void Ratio::setDenominator(int i) { // πρόσβαση den=i; } double Ratio::toDouble() { // μετατροπή return (double) num / (double) den; } void Ratio::invert() { // αντιστροφή int tmp=num; num=den; den=tmp; } void Ratio::print() { // εκτύπωση std::cout << num << "/" << den; } %------------------------------------------------------------------- // αρχείο testRatio.cpp #include #include "Ratio.h" using namespace std; int main() { int i=37; int j=11; Ratio r1; // εξ'ορισμού μέθοδος κατασκευής: 0/1 Ratio r2(15); // κατασκευή με ένα όρισμα: 15/1 Ratio r3(3,4); // κατασκευή με δύο ορίσματα: 3/4 cout << "r1="; r1.print(); cout << endl; cout << "r2="; r2.print(); cout << endl; cout << "r3="; r3.print(); cout << endl; r1.setNumerator(i); cout << "r1="; r1.print(); cout << endl; r1.setDenominator(j); cout << "r1="; r1.print(); cout << endl; return 0; } %------------------------------------------------------------------- // αρχείο testRatio2.cpp #include #include "Ratio.h" using namespace std; int main() { Ratio r1; r1.setNumerator(7); r1.setDenominator(9); cout << "r1="; r1.print(); cout << endl; Ratio *p1 = new Ratio; Ratio *p2; p2=&r1; cout << "*p1="; (*p1).print(); cout << endl; cout << "*p2="; (*p2).print(); cout << endl; // ισοδύναμα, χρησιμοποιώντας τον τελεστή "->" : cout << "*p1="; p1->print(); cout << endl; cout << "*p2="; p2->print(); cout << endl; // Δεν χρειάζομαι πλέον το p1 => ελευθέρωση μνήμης delete p1; p2->setNumerator(3); p2->setDenominator(8); cout << "*p2="; p2->print(); cout << endl; return 0; } %------------------------------------------------------------------- #include // πρόγραμμα test.cpp using namespace std; class TestClass { public: ~TestClass(); TestClass(); TestClass(double,double,double); void print(); private: double x, y, z; }; TestClass::~TestClass() {} TestClass::TestClass() {x=y=z=0;} TestClass::TestClass(double x=0,double y=0,double z=0) { this->x = x; // this->x : ιδιωτικό μέλος x // x : 1ο όρισμα this->y = y; // this->y : ιδιωτικό μέλος y // y : 2ο όρισμα this->z = z; // this->z : ιδιωτικό μέλος z // z : 3ο όρισμα } void TestClass::print() { cout << "("<