객체 지향 프로그래밍
2025. 3. 27. 23:47ㆍProgramming Languages/C++
객체 지향 프로그래밍
객체 지향 프로그래밍(Object-Oriented Programming, OOP)은 C++의 핵심 패러다임 중 하나로, 데이터와 해당 데이터를 처리하는 함수를 논리적 단위인 '객체'로 묶어 프로그램을 구성하는 방식입니다. 이 챕터에서는 OOP의 기본 개념부터 고급 기능까지 상세히 다룹니다.
5.1 클래스와 객체의 기본 개념
5.1.1 클래스와 객체 소개
클래스(Class): 객체의 설계도 역할을 하는 사용자 정의 데이터 타입 객체(Object): 클래스의 인스턴스(실체)
#include <iostream>
#include <string>
// 클래스 정의
class Person {
public:
// 멤버 변수 (데이터)
std::string name;
int age;
// 멤버 함수 (메서드)
void introduce() {
std::cout << "안녕하세요! 제 이름은 " << name << "이고, "
<< age << "살입니다." << std::endl;
}
};
int main() {
// 객체 생성
Person person1;
// 객체의 멤버 변수 설정
person1.name = "홍길동";
person1.age = 25;
// 객체의 멤버 함수 호출
person1.introduce();
// 또 다른 객체 생성
Person person2;
person2.name = "김철수";
person2.age = 30;
person2.introduce();
return 0;
}
5.1.2 구조체(struct)와 클래스(class)의 차이
C++에서 struct와 class는 거의 동일하게 동작하지만, 기본 접근 지정자가 다릅니다:
struct Point {
int x; // 기본적으로 public
int y;
};
class Circle {
private: // 기본적으로 private
double radius;
Point center;
};
- struct: 기본 접근 지정자가 public
- class: 기본 접근 지정자가 private
구조체는 일반적으로 간단한 데이터 모음에 사용되고, 클래스는 데이터와 함수를 함께 캡슐화할 때 사용됩니다. 하지만 이는 관례일 뿐, 기술적으로는 서로 대체 가능합니다.
'Programming Languages > C++' 카테고리의 다른 글
생성자와 소멸자 (0) | 2025.03.28 |
---|---|
캡슐화와 접근 지정자 (0) | 2025.03.28 |
챕터4. 실습문제 (0) | 2025.03.27 |
함수 고급 주제 (0) | 2025.03.27 |
재귀(Recursion) (0) | 2025.03.27 |