티스토리 뷰
반응형
🧠 C++에서 익명 객체란?
― 이름 없이 잠깐 쓰고 사라지는 객체
✅ 1. 정의: 익명 객체란?
C++에서 익명 객체(anonymous object)란, 변수 이름 없이 생성되는 객체를 말합니다.보통 객체는 이렇게 만듭니다:
Person p;
여기서 p
는 객체의 이름입니다. 이 이름을 통해 메서드를 호출하거나 상태를 저장합니다.하지만 딱 한 번만 사용할 객체라면 굳이 이름을 붙일 필요가 없겠죠?
📌 이럴 때 사용하는 것이 바로 익명 객체입니다.
익명 객체는 이름 없이 생성되어 곧바로 사용되고, 사용이 끝나면 즉시 사라집니다.
✅ 2. 쓰임: 익명 객체는 어디에 쓰일까?
📌 즉, 재사용할 필요 없는 객체를 잠깐 쓰고 버릴 때 유용합니다.
✅ 3. 클래스 구조부터 보여주자
익명 객체든 일반 객체든, 객체를 사용하려면 그 클래스가 어떤 구조인지 먼저 알아야 합니다.이 글에서는
Person
클래스를 사용할 것입니다.
📌 Person 클래스 정의:
#include <iostream>
using namespace std;
class Person {
public:
Person() {
cout << "[생성자 호출] Person 객체 생성됨" << endl;
}
~Person() {
cout << "[소멸자 호출] Person 객체 소멸됨" << endl;
}
void sayHello() {
cout << "안녕하세요! 저는 Person입니다." << endl;
}
};
설명:
- 생성자: 객체가 생성될 때 호출됨
- 소멸자: 객체가 사라질 때 호출됨
sayHello
: 인사말 출력
반응형
✅ 4. 문제 상황: 일반 객체, 쓸 때마다 변수 선언?
📌 코드:
int main() {
Person p;
p.sayHello();
return 0;
}
📌 출력 결과:
[생성자 호출] Person 객체 생성됨 안녕하세요! 저는 Person입니다. [소멸자 호출] Person 객체 소멸됨
📌 해석:
Person p
라는 이름으로 객체가 생성되고,sayHello()
가 호출되며,- 프로그램 종료 시 객체가 소멸됩니다.
p
라는 이름이 필요했을까요?
✅ 5. 해결책: 익명 객체 사용
📌 코드:
int main() {
Person().sayHello();
return 0;
}
📌 출력 결과:
[생성자 호출] Person 객체 생성됨 안녕하세요! 저는 Person입니다. [소멸자 호출] Person 객체 소멸됨
📌 해석:
Person()
→ 익명 객체 생성.sayHello()
→ 메서드 호출- 호출이 끝나자마자 객체가 메모리에서 즉시 사라짐
✅ 변수 선언 없이, 한 줄로 간단하게 사용하고 자동 소멸되는 구조
✅ 6. 일반 객체 vs 익명 객체 비교
📌 요약해보면:
- 한 번만 사용할 객체에 이름을 붙이면 코드가 복잡해지고 불필요한 메모리 사용이 생깁니다.
- 익명 객체를 사용하면 코드가 짧고 명확하며, 메모리도 자동으로 관리되어 훨씬 깔끔합니다.
✅ 마무리
익명 객체는 작지만 강력한 기능입니다.특히 다음 상황에서 매우 유용합니다:
- 함수 한 번 호출하고 끝낼 때
- 임시 테스트용으로 객체를 만들 때
- 변수 관리 없이 코드만 간단히 돌리고 싶을 때
반응형
'프로그래밍 > 홍정모의 따라배우는 C++' 카테고리의 다른 글
중첩타입 Nested type이란? C++ (0) | 2025.05.18 |
---|---|
클래스 friend 선언, 왜 쓰는가? C++ (0) | 2025.05.18 |
정적 멤버 함수(static member function)이란? C++ (0) | 2025.05.18 |
정적 멤버 변수란? 클래스, C++ (0) | 2025.05.14 |
클래스에서 const 오버로딩 (0) | 2025.05.13 |
반응형
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- stl
- 코딩테스트
- 보세사
- 일본어
- 데이터분석
- 여인권
- 회계
- 강화학습
- 인지부조화
- 파이썬
- c++
- Python
- 정보처리기사
- C
- 일문따
- K-MOOC
- 윤성우
- 뇌와행동의기초
- 오블완
- 통계
- 일본어문법무작정따라하기
- 열혈프로그래밍
- 사회심리학
- 백준
- 티스토리챌린지
- C/C++
- 인프런
- 류근관
- 통계학
- 심리학
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
글 보관함