Both sides previous revisionPrevious revisionNext revision | Previous revision |
cpp:vector_overloading_unary_operators [2019/05/16 07:27] – gthanos | cpp:vector_overloading_unary_operators [Unknown date] (current) – external edit (Unknown date) 127.0.0.1 |
---|
====== Υπερφόρτωση μοναδιαίων τελεστών (unary operators) ====== | ====== Υπερφόρτωση μοναδιαίων τελεστών (unary operators) ====== |
| |
| Ο παρακάτω πίνακας περιγράφει την υπερφόρτωση των τελεστών στο παράδειγμα της κλάσης //Vector// που ακολουθεί. |
| |
^ Τελεστής ^ Θέση (πριν ή μετά το αντικείμενο) ^ Περιγραφή ^ Μεταβάλει το αντικείμενο<color red>*</color> ^ Φιλική συνάρτηση ^ | ^ Τελεστής ^ Θέση (πριν ή μετά το αντικείμενο) ^ Περιγραφή ^ Μεταβάλει το αντικείμενο<color red>*</color> ^ Φιλική συνάρτηση ^ |
| %%+%% | Πριν | Επιστρέφει το άθροισμα των στοιχείων του αντικειμένου. | Όχι | Όχι | | | %%+%% | Πριν | Επιστρέφει το άθροισμα των στοιχείων του αντικειμένου. | Όχι | Όχι | |
| %%-%% | Πριν | Επιστρέφει ένα νέο αντικείμενο τα στοιχεία του οποίου έχουν αντεστραμμένο πρόσημο σε σχέση με το αντικείμενο που εφαρμόζεται. | Όχι | Όχι | | | %%-%% | Πριν | Επιστρέφει ένα νέο αντικείμενο τα στοιχεία του οποίου έχουν αντεστραμμένο πρόσημο σε σχέση με το αντικείμενο που εφαρμόζεται. | Όχι | Όχι | |
| %%++%% | Πριν | Επιστρέφει ένα νέο αντικείμενο τα στοιχεία του οποίου έχουν αυξηθεί κατά ένα σε σχέση με το αντικείμενο που εφαρμόζεται. Το αντικείμενο στο οποίο εφαρμόζεται έχει αυξήσει και αυτό τις τιμές των στοιχείων του κατά ένα. | Ναι | Όχι | | | %%++%% | Πριν | Επιστρέφει μία αναφορά στο τρέχον αντικείμενο, τα στοιχεία του οποίου έχουν αυξηθεί κατά ένα. | Ναι | Όχι | |
| %%--%% | Πριν | Επιστρέφει ένα νέο αντικείμενο τα στοιχεία του οποίου έχουν μειωθεί κατά ένα σε σχέση με το αντικείμενο που εφαρμόζεται. Το αντικείμενο στο οποίο εφαρμόζεται έχει μειώσει και αυτό τις τιμές των στοιχείων του κατά ένα. | Ναι | Ναι | | | %%--%% | Πριν | Επιστρέφει μία αναφορά στο αντικείμενο που περνιέται ως 1η παράμετρος στη φιλική συνάρτηση (δηλαδή το τρέχον αντικείμενο), τα στοιχεία του οποίου έχουν μειωθεί κατά ένα. | Ναι | Ναι | |
| %%++%% | Μετά | Επιστρέφει ένα νέο αντικείμενο αντίγραφο του αντικειμένου που εφαρμόζεται. Το αντικείμενο στο οποίο εφαρμόζεται έχει αυξήσει τις τιμές των στοιχείων του κατά ένα. | Ναι | Μέλος της κλάσης | | | %%++%% | Μετά | Επιστρέφει ένα νέο αντικείμενο, που είναι αντίγραφο του αντικειμένου στο οποίο εφαρμόζεται ο τελεστής, πριν την πράξη της αύξησης. Το αντικείμενο στο οποίο εφαρμόζεται ο τελεστής αυξάνει τις τιμές των στοιχείων του κατά 1. | Ναι | Όχι | |
| %%--%% | Μετά | Επιστρέφει ένα νέο αντικείμενο αντίγραφο του αντικειμένου που εφαρμόζεται. Το αντικείμενο στο οποίο εφαρμόζεται έχει μειώσει τις τιμές των στοιχείων του κατά ένα. | Ναι | Ναι | | | %%--%% | Μετά | Επιστρέφει ένα νέο αντικείμενο, που είναι αντίγραφο του αντικειμένου στο οποίο εφαρμόζεται ο τελεστής, πριν την πράξη της μείωσης. Το αντικείμενο στο οποίο εφαρμόζεται ο τελεστής μειώνει τις τιμές των στοιχείων του κατά 1. | Ναι | Ναι | |
| %%*%% | Πριν | Επιστρέφει έναν ακέραιο που αποτελεί το γινόμενο των στοιχείων του πίνακα. | Όχι | Όχι | | | %%*%% | Πριν | Επιστρέφει έναν ακέραιο που αποτελεί το γινόμενο των στοιχείων του πίνακα. | Όχι | Όχι | |
| %%!%% | Πριν | Επιστρέφει ένα νέο αντικείμενο τα στοιχεία του οποίου έχουν αντίστροφη σειρά σε σχέση με το αντικείμενο που εφαρμόζεται. | Όχι | Ναι | | | %%!%% | Πριν | Επιστρέφει ένα νέο αντικείμενο τα στοιχεία του οποίου έχουν αντίστροφη σειρά σε σχέση με το αντικείμενο που εφαρμόζεται. | Όχι | Ναι | |
</WRAP> | </WRAP> |
| |
<code cpp Vector.cpp> | <code cpp Vector.hpp> |
#include <iostream> | #include <iostream> |
#include <string> | #include <string> |
#include <cstdlib> | #include <cstdlib> |
using namespace std; | using namespace std; |
| |
| #ifndef _VECTOR_HPP_ |
| #define _VECTOR_HPP_ |
| |
class Vector { | class Vector { |
// elements in inverted sequence. | // elements in inverted sequence. |
}; | }; |
| |
| #endif |
| </code> |
| |
| <code cpp Vector.cpp> |
| #include "Vector.hpp" |
| |
Vector::Vector(unsigned int length) { | Vector::Vector(unsigned int length) { |
} | } |
| |
| </code> |
| |
| <code cpp VectorUsage.cpp> |
| #include "Vector.hpp" |
| |
int main() { | int main() { |