Készítsük el az alábbi diagram alapján a megadott osztályok kódját!
- A konstruktorok dobjanak kivételt, ha valamelyik objektumot hibás adatokkal inicializáljuk (negatív sugár, negatív oldalak, nem teljesül a háromszög egyenlőtlenség)!
- A háromszög területképlete
, ahol 

Készítsük el az alábbi diagram alapján a megadott osztályok kódját!
- A konstruktorok dobjanak kivételt, ha valamelyik objektumot hibás adatokkal inicializáljuk (negatív sugár, negatív élhossz)!
- A gömb felszíne és térfogata: A = 4r2 π, V = 4r3 π / 3

Jelöljük meg azokat a részeket a kódban amelyek fordítási / futási hibát okoznak (indoklással!) és javítsuk ki őket! (összesen 10 db van)
#include <cmath>
#include <iostream>
using namespace std;
class Complex
{
private:
double Re = 0, Im = 0;
public:
void Complex(double r = 0, double i)
{
Re = r;
Im = i;
}
const Complex& operator+(const Complex& C) const
{
return Complex(Re + C.Re, Im + C.Im);
}
Complex& operator+=(const Complex& C) const
{
Re += C.Re;
Im += C.Im;
return *this;
}
double operator double() const
{
return sqrt(Re * Re + Im * Im);
}
Complex Conjugate() const
{
return new Complex(Re, -Im);
}
};
ostream& operator<<(ostream& os, const Complex& C) const
{
os << C.Re << '+' << C.Im << 'i';
} |
Jelöljük meg azokat a részeket a kódban amelyek fordítási / futási hibát okoznak (indoklással!) és javítsuk ki őket! (összesen 10 db van)
#include <string.h>
class String
{
private:
unsigned elementNum = 0;
char *pData;
public:
String(String S)
{
elementNum = S.elementNum;
pData = S.pData;
}
String(const char *Str = "")
{
elementNum = strlen(Str);
strcpy(pData, Str);
}
~String()
{
delete pData;
}
String& operator=(const String& S) const
{
if (&S == this)
return *this;
delete[] pData;
pData = new char[(elementNum = S.elementNum) + 1];
strcpy(pData, S.pData);
}
const char *operator const char *() const
{
return pData;
}
static String& Min(String Str1, String Str2) const
{
return strcmp(Str1.pData, Str2.pData) < 0 ? Str1 : Str2;
}
}; |