#include <iostream>

using namespace std;


class PointA // A점을 표시하는 클래스

{

public: // 외부에서도 사용 가능

PointA() // 생성자로 x좌표와 y좌표를 초기화

{

x = 0, y = 0;

}

double GetX() // x값을 리턴받는 멤버 함수

{

return x;

}

double GetY() // y값을 리턴받는 멤버 함수

{

return y;

}

void SetX(int xpos) // x좌표를 설정

{

x = xpos;

}

void SetY(int ypos) // y좌표를 설정

{

y = ypos;

}

void ShowInfo() // x좌표와 y좌표를 화면에 출력

{

cout << "[" << GetX() << ", " << GetY() << "] ";

}


private: // class의 멤버에 의해서만 접근 가능

double x, y; // 멤버 변수를 private으로 선언

};


class PointB // B점을 표시하는 클래스

{

public:

PointB()

{

x = 3, y = 0;

}

double GetX()

{

return x;

}

double GetY()

{

return y;

}

void SetX(int xpos)

{

x = xpos;

}

void SetY(int ypos)

{

y = ypos;

}

void ShowInfo()

{

cout << "[" << GetX() << ", " << GetY() << "] ";

}


private:

double x, y;

}; // 위와 동일

class PointC // C점을 표시하는 클래스

{

public:

PointC()

{

x = 2, y = 3;

}

double GetX()

{

return x;

}

double GetY()

{

return y;

}

void SetX(int xpos)

{

x = xpos;

}

void SetY(int ypos)

{

y = ypos;

}

void ShowInfo()

{

cout << "[" << GetX() << ", " << GetY() << "] ";

}

private:

double x, y;

}; // 위와 동일


int main() // 실제 프로그램이 시작되는 곳

{

PointA A;

PointB B;

PointC C;

A.ShowInfo(); // 초기화해준 값으로 A점을 표시

B.ShowInfo(); // 초기화해준 값으로 B점을 표시

C.ShowInfo(); // 초기화해준 값으로 C점을 표시

cout << endl << "Triangle Area is: " << (B.GetX() - A.GetX()) * (C.GetY() - A.GetY()) / 2  << endl; // 좌표들을 이용한 삼각형의 넓이 계산

A.SetX(2); // Set함수를 이용한 A점의 X좌표 변경

A.SetY(3); // Set함수를 이용한 A점의 Y좌표 변경

B.SetX(4); // Set함수를 이용한 B점의 X좌표 변경

B.SetY(3); // Set함수를 이용한 B점의 Y좌표 변경

C.SetX(2); // Set함수를 이용한 C점의 X좌표 변경

C.SetY(6); // Set함수를 이용한 C점의 Y좌표 변경

A.ShowInfo(); // 변경된 A점을 표시

B.ShowInfo(); // 변경된 B점을 표시

C.ShowInfo(); // 변경된 C점을 표시

cout << endl <<  "Triangle Area is: " << (B.GetX() - A.GetX()) * (C.GetY() - A.GetY()) / 2 << endl; // 변경된 좌표들을 이용한 삼각형의 넓이 계산


return 0;

}


c++ 코드인데 클래스 한개에 객체 3개 만들어야 될걸 내가 잘못 이해해서 클래스 3개 만들었다는데 이걸 나 포함 3명이 똑같이 썼대..


내가 생각해도 말이 안되는것 같긴 한데 진짜 나는 결백하거든 ?..