C++/Class
2021. 3. 16. 00:10
익명 객체 (Anonymous Class)
R-value
처럼 사용할 수 있다.
예제
#include <iostream>
class A
{
public:
A()
{
std::cout << "Constructor : " << this << std::endl;
}
~A()
{
std::cout << "Destructor : " << this << std::endl;
}
void print()
{
std::cout << this << std::endl;
}
};
int main()
{
A a;
a.print();
a.print();
A().print();
A().print();
A().print();
}
/* stdout
Constructor : 00D8F96B
00D8F96B
00D8F96B
Constructor : 00D8F89F
00D8F89F
Destructor : 00D8F89F
Constructor : 00D8F893
00D8F893
Destructor : 00D8F893
Constructor : 00D8F887
00D8F887
Destructor : 00D8F887
Destructor : 00D8F96B
*/
익명 객체는 할 일을 마치면(명령줄이 끝나면) 바로 사라진다. (소멸자 호출)
그럼에도 스택은 내려가지 않고 계속 쌓이는 것을 볼 수 있다.
double(8)
같은 문법도 익명 객체와 비슷한 느낌인 것 같다.(double)8
과의 사소한 차이점이 있는 것 같긴 한데, 나중에 찾아봐야겠다.
'C++ > Class' 카테고리의 다른 글
C++ 객체들의 관계 (Object Relationship) (0) | 2021.03.19 |
---|---|
C++ Nested Types (0) | 2021.03.16 |
C++ friend (0) | 2021.03.16 |
C++ 정적 멤버 함수 (Static Member Function) (0) | 2021.03.16 |
C++ 정적 멤버 변수 (Static Member Variable) (0) | 2021.03.15 |