C++ study(2)

김혜원·2023년 1월 21일
0

c++study

목록 보기
2/11
post-thumbnail

Class

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;
}

0개의 댓글