M
marcofuics
Hi
I have the code:
££££££££££££££
#include <iostream>
using namespace std;
class CSquare
{
public:
double Side;
CSquare() : Side(0.00) {}
CSquare(double side) : Side(side) { }
~CSquare() { }
double getSide() const { return Side; }
void setSide(const double s)
{
if( s <= 0 )
Side = 0.00;
else
Side = s;
}
double Perimeter() { return Side * 4; }
double Area() { return Side * Side; }
};
class Container
{
public:
int counter;
CSquare* arr[1];
Container() : counter(0) {}
void add(CSquare* elm) {
arr[counter] = elm;
counter++;
}
};
int main()
{
CSquare *sqr[1];
Container container;
sqr[0] = new CSquare;
sqr[0]->setSide(1.0);
sqr[1] = new CSquare;
sqr[1]->setSide(2.0);
sqr[2] = new CSquare;
sqr[2]->setSide(3.0);
sqr[3] = new CSquare;
sqr[3]->setSide(4.0);
container.add(sqr[0]);
container.add(sqr[1]);
cout << "Squares Characteristics" << endl;
cout << "Square 0" << endl;
cout << "Side: " << sqr[0]->getSide() << endl;
cout << "Perimeter: " << sqr[0]->Perimeter() << endl;
cout << "Area: " << sqr[0]->Area() << endl;
cout << "Square 1" << endl;
cout << "Side: " << sqr[1]->getSide() << endl;
cout << "Perimeter: " << sqr[1]->Perimeter() << endl;
cout << "Area: " << sqr[1]->Area() << endl;
cout << "Square 2" << endl;
cout << "Side: " << sqr[2]->getSide() << endl;
cout << "Perimeter: " << sqr[2]->Perimeter() << endl;
cout << "Area: " << sqr[2]->Area() << endl;
cout << "Square 3" << endl;
cout << "Side: " << sqr[3]->getSide() << endl;
cout << "Perimeter: " << sqr[3]->Perimeter() << endl;
cout << "Area: " << sqr[3]->Area() << endl;
return 0;
}
££££££££££££££
and I thought that it should generate an error, instead I get this output
@@@@@@@@@@@@@@@@
Squares Characteristics
Square 0
Side: 2
Perimeter: 8
Area: 4
Square 1
Side: 2
Perimeter: 8
Area: 4
Square 2
Side: 3
Perimeter: 12
Area: 9
Square 3
Side: 4
Perimeter: 16
Area: 16
@@@@@@@@@@@@@@@@
why the first 2 elements give me the same result?
I have the code:
££££££££££££££
#include <iostream>
using namespace std;
class CSquare
{
public:
double Side;
CSquare() : Side(0.00) {}
CSquare(double side) : Side(side) { }
~CSquare() { }
double getSide() const { return Side; }
void setSide(const double s)
{
if( s <= 0 )
Side = 0.00;
else
Side = s;
}
double Perimeter() { return Side * 4; }
double Area() { return Side * Side; }
};
class Container
{
public:
int counter;
CSquare* arr[1];
Container() : counter(0) {}
void add(CSquare* elm) {
arr[counter] = elm;
counter++;
}
};
int main()
{
CSquare *sqr[1];
Container container;
sqr[0] = new CSquare;
sqr[0]->setSide(1.0);
sqr[1] = new CSquare;
sqr[1]->setSide(2.0);
sqr[2] = new CSquare;
sqr[2]->setSide(3.0);
sqr[3] = new CSquare;
sqr[3]->setSide(4.0);
container.add(sqr[0]);
container.add(sqr[1]);
cout << "Squares Characteristics" << endl;
cout << "Square 0" << endl;
cout << "Side: " << sqr[0]->getSide() << endl;
cout << "Perimeter: " << sqr[0]->Perimeter() << endl;
cout << "Area: " << sqr[0]->Area() << endl;
cout << "Square 1" << endl;
cout << "Side: " << sqr[1]->getSide() << endl;
cout << "Perimeter: " << sqr[1]->Perimeter() << endl;
cout << "Area: " << sqr[1]->Area() << endl;
cout << "Square 2" << endl;
cout << "Side: " << sqr[2]->getSide() << endl;
cout << "Perimeter: " << sqr[2]->Perimeter() << endl;
cout << "Area: " << sqr[2]->Area() << endl;
cout << "Square 3" << endl;
cout << "Side: " << sqr[3]->getSide() << endl;
cout << "Perimeter: " << sqr[3]->Perimeter() << endl;
cout << "Area: " << sqr[3]->Area() << endl;
return 0;
}
££££££££££££££
and I thought that it should generate an error, instead I get this output
@@@@@@@@@@@@@@@@
Squares Characteristics
Square 0
Side: 2
Perimeter: 8
Area: 4
Square 1
Side: 2
Perimeter: 8
Area: 4
Square 2
Side: 3
Perimeter: 12
Area: 9
Square 3
Side: 4
Perimeter: 16
Area: 16
@@@@@@@@@@@@@@@@
why the first 2 elements give me the same result?