Skip to content

Commit 73eecc3

Browse files
author
tiberius
committed
fixed operator overloading problem
1 parent fb5d7e6 commit 73eecc3

File tree

4 files changed

+25
-32
lines changed

4 files changed

+25
-32
lines changed

cpp4j/rationalnumber.cpp

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -8,40 +8,40 @@
88
#include <stdio.h>
99
#include <stdlib.h>
1010

11-
bool rnum::CPP_RationalNumber::isValid (void){
11+
bool rnum::CPP_RationalNumber::isValid (void) const {
1212
return rnIsValid(this->rn);
1313
}
1414

15-
bool rnum::CPP_RationalNumber::isNaN (void){
15+
bool rnum::CPP_RationalNumber::isNaN (void)const {
1616
return rnIsNaN(this->rn);
1717
}
1818

1919
bool rnum::CPP_RationalNumber::operator==
20-
(const rnum::CPP_RationalNumber &right){
20+
(const rnum::CPP_RationalNumber &right) const {
2121
return rnEqual(this->rn,right.rn);
2222
}
2323

2424
bool rnum::CPP_RationalNumber::operator<
25-
(const rnum::CPP_RationalNumber &right){
25+
(const rnum::CPP_RationalNumber &right) const {
2626
return rnLessThan(this->rn,right.rn);
2727
}
2828

2929
const rnum::CPP_RationalNumber rnum::CPP_RationalNumber::operator+
30-
(const rnum::CPP_RationalNumber &right) const{
30+
(const rnum::CPP_RationalNumber &right) const {
3131
rnum::CPP_RationalNumber result = *this;
3232
result.rn = rnAdd(this->rn, right.rn);
3333
return result;
3434
}
3535

3636
const rnum::CPP_RationalNumber rnum::CPP_RationalNumber::operator-
37-
(const rnum::CPP_RationalNumber &right) const{
37+
(const rnum::CPP_RationalNumber &right) const {
3838
rnum::CPP_RationalNumber result = *this;
3939
result.rn = rnSubtract(this->rn, right.rn);
4040
return result;
4141
}
4242

43-
const rnum::CPP_RationalNumber rnum::CPP_RationalNumber::operator -()
44-
const{
43+
const rnum::CPP_RationalNumber rnum::CPP_RationalNumber::operator-
44+
() const {
4545
rnum::CPP_RationalNumber result = *this;
4646
const RationalNumber kaiSucks = { -1,1};
4747
result.rn = rnMultiply( this->rn , kaiSucks );

cpp4j/rationalnumber.h

Lines changed: 15 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -60,43 +60,37 @@ RationalNumber rnDivide
6060
namespace rnum {
6161
class CPP_RationalNumber {
6262
public :
63-
CPP_RationalNumber
64-
(int nom, int denom)
65-
{
66-
rn.nominator = nom;
67-
rn.denominator = denom;
68-
}
6963

7064
CPP_RationalNumber
71-
(int nom)
65+
()
7266
{
73-
rn.nominator = nom;
67+
rn.nominator = 0;
7468
rn.denominator = 1;
7569
}
7670

7771
CPP_RationalNumber
78-
()
72+
(int nom)
7973
{
80-
rn.nominator = 0;
74+
rn.nominator = nom;
8175
rn.denominator = 1;
8276
}
8377

84-
CPP_RationalNumber& operator= (const int &right)
78+
explicit CPP_RationalNumber
79+
(int nom, int denom)
8580
{
86-
this->rn.nominator = right;
87-
this->rn.denominator = 1;
88-
return *this;
81+
rn.nominator = nom;
82+
rn.denominator = denom;
8983
}
9084

91-
bool isValid (void);
85+
bool isValid (void) const;
9286

93-
bool isNaN (void);
87+
bool isNaN (void) const;
9488

9589
bool operator==
96-
(const CPP_RationalNumber &right);
90+
(const CPP_RationalNumber &right) const;
9791

9892
bool operator<
99-
(const CPP_RationalNumber &right);
93+
(const CPP_RationalNumber &right) const;
10094

10195
const CPP_RationalNumber operator+
10296
(const CPP_RationalNumber &right) const;
@@ -113,7 +107,6 @@ public :
113107
CPP_RationalNumber & operator*=
114108
(const CPP_RationalNumber &right);
115109

116-
117110
const CPP_RationalNumber operator/
118111
(const CPP_RationalNumber &right) const;
119112

@@ -125,13 +118,13 @@ public :
125118
RationalNumber rn;
126119
};
127120

128-
CPP_RationalNumber operator*(const int left, const CPP_RationalNumber &right){
121+
/*CPP_RationalNumber operator*(const int left, const CPP_RationalNumber &right){
129122
return CPP_RationalNumber(left) * right;
130123
}
131124
132-
CPP_RationalNumber operator/( const CPP_RationalNumber &left, const int right){
125+
CPP_RationalNumber operator/(const CPP_RationalNumber &left, const int right){
133126
return left / CPP_RationalNumber(right);
134-
}
127+
}*/
135128

136129
}
137130
#endif // RATIONALNUMBER_H

cpp4j/rationalnumberarray.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -143,7 +143,7 @@ void rnaResize(RationalNumberArray * rna, const unsigned int newSize) {
143143
if (rna->size == newSize) // nothing to do
144144
return;
145145

146-
RationalNumber * newData = (RationalNumber*) realloc(rna->data, computeSizeForData(newSize));
146+
RationalNumber * newData = (RationalNumber*) realloc((RationalNumber *)rna->data, computeSizeForData(newSize));
147147

148148
if (rna->size > newSize) {
149149
// size decreases, ptr returned by realloc should always be equal to the old ptr

cpp4j/testCPP_RN.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ void testCPP_RN(void)
2424

2525
int i=5, j=4;
2626
CPP_RationalNumber g(1,2), h(7,3);
27-
//CPP_RationalNumber aa = i*g, bb = h/j;
27+
CPP_RationalNumber aa = g*i, bb = h/j;
2828
CPP_RationalNumber ia (i);
2929
CPP_RationalNumber ja = j;
3030

0 commit comments

Comments
 (0)