anonim_4396
| anonim_4396 a întrebat:

De ce nu merge sa compilez problema de mai jos in Code Block:
#include
using namespace std;

class Fraction
{
private:
int num, den;
public:
void set(int n, int d)
{
num=n;
den=d;
normalize();
}
int get_num()
{
return num;
}
int get_den()
{
return den;
}
private:
void normalize();
int gcf(int a, int b);
int lcm(int a, int b);
};
void Fraction::normalize()
{
if(den==0||num==0)
{
num=0;
den=1;
}
if(den

4 răspunsuri:
| T0T a răspuns:

Păi tu de câte ori pui private? Pui odată private și declari absolut tot ce îți trebuie acolo și odată public și faci la fel dacă vorbești de aceeași clasă. De asemenea de unde iei tu funcția normalize() că o văd declarată de abia după în celălalt private, nu definită. Mie programul mi se pare o harababură așa la prima vedere. Mai bine te-ai chinui să lucrezi mai ordonat. Adică ori definești toate funcțiile când le declari ori întâi le declari în public și le definești separat mai jos pe toate. Eu recomand a doua variantă, e ceva mai ordonată. De asemenea recomandat e să pui parametrii la private și funcțiile la public.

| bystefu a răspuns:

Ce eroare ai?

| Clarx a răspuns (pentru bystefu):

#include

class Fraction {
private:
int num, den;
public:
void set(int n, int d)
{
num=n;
den=d;
normalize();
}
int get_num()
{
return num;
}
int get_den()
{
return den;
}
private:
void normalize();
int gcf(int a, int b);
int lcm(int a, int b);

void Fraction::normalize()
{
if(den == 0 || num == 0)
{
num=0;
den=1;
}

if(den

| Clarx a răspuns (pentru bystefu):

#include

using namespace std;

class Fraction
{
private:
int num, den;
public:
void set(int n, int d)
{
num=n;
den=d;
normalize();
}
int get_num()
{
return num;
}
int get_den()
{
return den;
}
private:
void normalize();
int gcf(int a, int b);
int lcm(int a, int b);
};