Class란? 구조체의 확장.
구조체= 여러 변수들을 가지고 있는 새로 정의된 자료형.
구조체 + 멤버 함수를 가질 수 있다.
#include <iostream>
using namespace std;
class myclass
{
public:
int n;
double f;
};
int main()
{
myclass A;
A.n = 3;
A.f = 5.5;
return 0;
}
구조체와 비슷하지만 struct 대신 class 로 선언.
맨 첫줄에 public: 와 같이 써줌.
*Object :class 자료형을 가진 변수
-객체 지향 프로그래밍의 '객체'
-객체들이 서로 연동되어 프로그램이 돌아간다.
멤버 변수 = class가 가지고 있는 변수.
object가 존재해야 object의 멤버 변수 존재.
#include <iostream>
using namespace std;
class myclass
{
public:
int m, n;
int sum()
{
return m + n;
}
void print()
{
cout << "m:" << m << ",n:" << n << endl;
}
};
int main()
{
myclass A, B;
A.m = 3;
A.n = 7;
B.m = 5;
B.n = -12;
cout << "A의 합:" << A.sum() << endl;
cout << "B의 합:" << B.sum() << endl;
A.print();
B.print();
return 0;
}
class안에 함수가 선언되어 있다.
멤버 함수의 선언과 정의를 나누어 쓰면, 아래와 같다.
선언은 class안에 하고 정의는 가장 바깥쪽 지역에 한다. 멤버 함수임을 표시하기 위해 함수명 바로 앞에 "class name:: " 을 붙여야 한다.
#include <iostream>
using namespace std;
class myclass
{
public:
int m, n;
int sum();
void print();
};
int main()
{
myclass A, B;
A.m = 3;
A.n = 7;
B.m = 5;
B.n = -12;
cout << "A의 합:" << A.sum() << endl;
cout << "B의 합:" << B.sum() << endl;
A.print();
B.print();
return 0;
}
int myclass::sum()
{
return m + n;
}
void myclass::print()
{
cout << "m:" << m << ",n:" << n << endl;
}