• 05-03-2003
sayword
Hey im having trouble, this is only the second program ive dont in c++, anyhow, its a group project for school dealing with math with fractions, here is the code for my header file:

Code:

```#include<iomanip.h> #include<iostream.h> #include"16-6.h" numbers::numbers(int num, int den) {   int x, y;   x = num;   y = den; } void numbers::printfrac() {   cout << x << "/" << y; /* prints as fraction */ } void numbers::printdec() {     cout << dec /* prints in decimal form */       << setprecision(3) << (float)x/y; } void numbers::reduction()                /* reduces fraction */ {   int i, small;   if (x < y)     small = x;   else     small = y;   for (i = small; 1 >= 1; i--)     if(x % i == 0; && y %i == 0)       {         y = y / i;         x = x / i;       } } numbers numbers::multiply(numbers a, numbers b) {   int whole = 0;   numbers d;   d = a.x * b.y;   d.reduction();   return d; } numbers numbers::divide(numbers a, numbers b) {   int whole = 0;   numbers d;   d = a.x * b.y; // invert and multiply   d = b.x * a.y;   d.reduction();   return d; } numbers numbers::add(numbers a, numbers b) {   int t1 = 0, t2 = 0, temp_num1 = 0, temp_num2 = 0, temp_den1 = 0,     temp_den2 = 0, whole = 0;   numbers d;   t1 = a.y;   t2 = b.y;   temp_num1 = a.x * t2;   temp_den1 = a.y * t2;   temp_num2 = b.x * t1;   temp_den2 = b.y * t1;   d.x = temp_num1 + temp_num2;   d.y = temp_den1;   d.reduction();   return d; } numbers numbers::subtract(numbers a, numbers b) {   int t1 = 0, t2 = 0, temp_num1 = 0, temp_num2 = 0, temp_den1 = 0,     temp_den2 = 0, whole = 0;   numbers d;   t1 = a.y;   t2 = b.y;   temp_num1 = a.x * t2;   temp_den1 = a.y * t2;   temp_num2 = b.x * t1;   temp_den2 = b.y * t1;   d.x = temp_num1 - temp_num2;   d.y = temp_den1;   d.reduction();   return d; }```

here are the errors i get

"student2n3.h", line 18.11: 1540-0274 (S) The name lookup for "x" did not find a declaration.
"student2n3.h", line 18.23: 1540-0274 (S) The name lookup for "y" did not find a declaration.
"student2n3.h", line 25.37: 1540-0274 (S) The name lookup for "x" did not find a declaration.
"student2n3.h", line 25.39: 1540-0274 (S) The name lookup for "y" did not find a declaration.
"student2n3.h", line 35.18: 1540-0064 (S) Syntax error: ")" was expected but ";" was found.
"student2n3.h", line 45.8: 1540-0217 (S) "x" is not a member of "class numbers".
"student2n3.h", line 45.14: 1540-0217 (S) "y" is not a member of "class numbers".
"student2n3.h", line 54.8: 1540-0217 (S) "x" is not a member of "class numbers".
"student2n3.h", line 54.14: 1540-0217 (S) "y" is not a member of "class numbers".
"student2n3.h", line 55.8: 1540-0217 (S) "x" is not a member of "class numbers".
"student2n3.h", line 55.14: 1540-0217 (S) "y" is not a member of "class numbers".
"student2n3.h", line 65.9: 1540-0217 (S) "y" is not a member of "class numbers".
"student2n3.h", line 66.9: 1540-0217 (S) "y" is not a member of "class numbers".
"student2n3.h", line 67.16: 1540-0217 (S) "x" is not a member of "class numbers".
"student2n3.h", line 68.16: 1540-0217 (S) "y" is not a member of "class numbers".
"student2n3.h", line 69.16: 1540-0217 (S) "x" is not a member of "class numbers".
"student2n3.h", line 70.16: 1540-0217 (S) "y" is not a member of "class numbers".
"student2n3.h", line 71.4: 1540-0217 (S) "x" is not a member of "class numbers".
"student2n3.h", line 72.4: 1540-0217 (S) "y" is not a member of "class numbers".
"student2n3.h", line 82.9: 1540-0217 (S) "y" is not a member of "class numbers".
"student2n3.h", line 83.9: 1540-0217 (S) "y" is not a member of "class numbers".
"student2n3.h", line 84.16: 1540-0217 (S) "x" is not a member of "class numbers".
"student2n3.h", line 85.16: 1540-0217 (S) "y" is not a member of "class numbers".
"student2n3.h", line 86.16: 1540-0217 (S) "x" is not a member of "class numbers".
"student2n3.h", line 87.16: 1540-0217 (S) "y" is not a member of "class numbers".
"student2n3.h", line 88.4: 1540-0217 (S) "x" is not a member of "class numbers".
"student2n3.h", line 89.4: 1540-0217 (S) "y" is not a member of "class numbers".

if i need to post the other header files or the main program for my question to be answered let me know, but what am i doing wrong?

EDIT::: where it makes the happy face, its because it is ": p" sorry
• 05-03-2003
JaWiB
did u declare x and y within your class?

Code:

```class numbers { public: ... private: int x; int y;```
if you didn't, then you should remove the declarations from your constructor as well:
Code:

```numbers::numbers(int num, int den) { //  int x, y; <--not this   x = num;   y = den; }```
• 05-03-2003
sayword
well this is the interface header file

Code:

```#include <iostream.h> #ifndef fraction_h #define fraction_h class numbers {  private:   int num, den;  public:   numbers(int num = 0, int den = 1);   void reduction();   numbers add(numbers, numbers);   numbers subtract(numbers, numbers);   numbers multiply(numbers, numbers);   numbers divide(numbers, numbers);   void printfrac();   void printdec();   }; #endif```

does that help any more?
• 05-03-2003
JaWiB
first of all in your program you are passing in values to the constructor that are declared in the class
Code:

```numbers::numbers(int num, int den) {   int x, y;   x = num;   y = den; }```
instead of that you would want to put:
Code:

```numbers::numbers(int x, int y) //the numbers you pass in //when you create an instance - ie: numbers myNum(1,2) {   //int x, y; dont need this   //x = num; we want to change the value of variables declared in the class num = x; den = y;   }```
so when you create an instance within main you can set the values of the variables within the class
in main would be something like this:
Code:

`numbers myNum(1,5);`
doing it this way, you would have to change x and y
to num and den whenever they appear in your functions

at least that is what it seems to look like, without reading too in depth into your code
• 05-03-2003
confuted
http://cboard.cprogramming.com/annou...p?s=&forumid=6 Check 14.2 on that list. Good job with the code tags, though. There's a little check box below where you type that says "Disable smilies in this post," just fyi, beacuse you asked...well...sorta asked.