C++ 클래스 기본적인 사용법
객체지향 언어인 C++의 클래스 사용법에 대해 알아봅시다.
접근 제어 지시자
public | 어디서든 접근이 가능한 접근 제어 지시자이며 내부, 외부코드에서 모두 접근이 가능합니다. |
private | 선언한 클래스 내부에서만 접근이 가능한 접근 제어 지시자이며 외부에서 함부로 사용을 못하게 할때 사용합니다. |
protected | 기본적으로 private 역할을 하며 추가적으로 상속 받은 클래스에서도 접근이 가능한 접근 제어 지시자입니다. |
기본적인 클래스 모양
class 클래스 이름
{
접근 제어 지시자:
멤버변수
멤버함수
};
클래스 선언부와 구현부
클래스 선언부: 클래스의 모양을 정의하는 곳이며 보통 헤더파일(.h파일)에 많이 정의합니다.
class TestClass
{
private:
string stringTest;
public:
void SetString(string data);
};
클래스 구현부: 클래스 선언부에서 정의한 함수들을 실제로 구현하는 곳입니다.
void TestClass::SetString(string data)
{
cout << "[SetString] " << data << endl;
stringTest = data;
}
생성자와 소멸자
생성자: 클래스 객체를 생성할때 자동으로 호출되는 함수 입니다. 사용자가 따로 코드작성을 하지 않으면 컴파일러가 알아
생성자 선언부
class TestClass
{
public:
TestClass();
};
생성자 구현부
TestClass::TestClass()
{
cout << "Init TestClass!!" << endl;
}
소멸자: 생성자와 반대로 클래스 객체가 소멸할때 자동으로 호출되는 함수 입니다. 생성자와 마찬가지로 사용자가 따로 코드작성을 하지 않으면 컴파일러가 알아서 아무런기능이 없는 함수로 만들어 실행합니다.
소멸자 선언부
class TestClass
{
public:
~TestClass();
};
소멸자 구현부
TestClass::~TestClass()
{
cout << "End TestClass!!" << endl;
}
클래스 객체 생성 및 사용
이제 앞에서 생성한 클래스로 객체를 만들어 사용하는 방법을 알아보겠습니다.
void main()
{
/* TestClass 클래스를 obj 이름으로 객체 생성 */
TestClass obj = TestClass();
/* 객체 함수 호출 */
obj.SetString("Ruru TestString");
}
전체 예제 코드
헤더파일(.h파일)
#include <iostream>
using std::cout;
using std::endl;
#include <string>
using std::string;
class TestClass
{
private:
string stringTest;
bool boolTest;
int intTest;
public:
TestClass();
~TestClass();
void SetString(string data);
void SetBool(bool data);
void SetInt(int data);
string GetString();
bool GetBool();
int GetInt();
};
.
cpp파일
#include "ctest.h"
TestClass::TestClass()
{
cout << "Init TestClass!!" << endl;
}
TestClass::~TestClass()
{
cout << "End TestClass!!" << endl;
}
void TestClass::SetString(string data)
{
cout << "[SetString] " << data << endl;
stringTest = data;
}
void TestClass::SetBool(bool data)
{
cout << "[SetBool] " << data << endl;
boolTest = data;
}
void TestClass::SetInt(int data)
{
cout << "[SetInt] " << data << endl;
intTest = data;
}
string TestClass::GetString()
{
return stringTest;
}
bool TestClass::GetBool()
{
return boolTest;
}
int TestClass::GetInt()
{
return intTest;
}
void main()
{
/* TestClass 클래스를 obj 이름으로 객체 생성 */
TestClass obj = TestClass();
/* 객체 함수 호출 */
obj.SetString("Ruru TestString");
obj.SetBool(true);
obj.SetInt(200);
cout << "[GetString] " << obj.GetString() << endl;
cout << "[GetBool] " << obj.GetBool() << endl;
cout << "[GetInt] " << obj.GetInt() << endl;
}
마무리
이상 C++ 클래스 기본적인 사용법에 대해 알아보았습니다.
잘못된 점이 있거나 궁금한 점이 있다면 언제든지 문의해주시기 바랍니다!
728x90
반응형
'프로그래밍 > C++' 카테고리의 다른 글
[C++] 클래스를 DLL로 만들고 사용하기 (0) | 2024.03.07 |
---|---|
[C++] Crypto++ 라이브러리로 RSA 개인키, 공개키 생성하기 (0) | 2024.02.29 |
[C++] Crypto++ 암호화 오픈 라이브러리 (0) | 2024.02.26 |
[C++] 정적 라이브러리(Static Link Library)와 동적 라이브러리(Dynamic Link Library) (0) | 2024.02.22 |
[C++] extern "C"와 네임 맹글링 (0) | 2024.02.21 |