언어는 과-학인가요?/C++
Protected, Private, Public 함수 : 이동시키기
이원자 탄소
2020. 10. 31. 13:23
728x90
#include <iostream>
using namespace std;
class Point {
public:
int x, y;
public:
//생성자함수: 클래스를 객체화시킬때 값을 초기화 시키는 기능
//생성자 함수는 반드시 클래스명하고 같아야 한다
//함수를 오버로딩 시켜서 여러개의 인수 형태를 지정해서 초기화 가능
Point();
void moveLeft(); //좌표 왼쪽으로 이동시키는 함수
void moveRight(); //좌표 오른쪽으로 이동시키는 함수
void print(); //좌표 출력하는 함수
};
class childPoint : public Point
{
public:
void moveUp();
void moveDown();
};
//생성자 함수 구현
//객체 생성시 x좌표 50 y좌표 50
Point::Point() {
x = 50;
y = 50;
print();
}
//왼쪽으로 이동하는 함수
void Point::moveLeft() {
x = x - 1;
print();
}
//오른쪽으로 이동하는 함수
void Point::moveRight() {
y = y - 1;
print();
}
void Point::print()
{
cout << x << " " << y << endl;
}
void childPoint::moveUp() {
x = x + 10;
print();
}
void childPoint::moveDown() {
y = y - 10;
print();
}
int main() {
Point p;
childPoint cp;
cout << "------------------" << endl;
p.moveLeft();
p.moveLeft();
cout << "------------------" << endl;
p.moveRight();
p.moveRight();
cout << "------------------" << endl;
cp.moveUp();
cp.moveUp();
cout << "------------------" << endl;
cp.moveDown();
cp.moveDown();
return 0;
}
#include <iostream>
using namespace std;
class PointOne {
public:
PointOne()
{
cout << "PointOne 생성자임" << endl;
cout << "==============================" << endl;
}
~PointOne()
{
cout << "PointOne 소멸자임" << endl;
cout << "==============================" << endl;
}
public:
int one_pubx;
protected:
int one_prox;
private:
int one_prix;
public:
void output() {
cout << "public one pubx" << one_pubx << endl;
cout << "public one prox" << one_prox << endl;
cout << "public one prix" << one_prix << endl;
}
};
class PointTwo :public PointOne {
public:
PointTwo()
{
one_pubx = 1000;
one_prox = 2000;
//one_prix = 3000; 부모 클래스의 멤버 변수가 private이라서
cout << "PointTwo 생성자임\n" << endl;
}
~PointTwo()
{
cout << "PointTwo 소멸자임\n" << endl;
}
};
int main() {
PointOne p1;
PointTwo p2;
cout << "-----------------------" << endl;
p1.output();
cout << "-----------------------" << endl;
p2.output();
cout << "-----------------------" << endl;
//부모 클래스로 만든 p1객체에서 값 지정
p1.one_pubx = 500;
//p1.one_prox=2000; main에서 접근안됨
p2.one_pubx = 700;
cout << "---------p1 객체 시작----------" << endl;
p1.output();
cout << "---------p1 객체 끝----------\n" << endl;
cout << "---------p2 객체 시작----------" << endl;
p2.output();
cout << "---------p2 객체 끝----------" << endl;
}
728x90