익명 객체

2023. 7. 9. 20:20c,c++/c++ 관련 개념 및 문법

익명객체는 단순한 함수 하나만 이용하는 클래스가 있을 경우 쓰고 버리는 느낌으로 이용하는 객체를 쓸 때 이용한다.

 

익명객체는 생성 후 하나의 함수 실행 후 쓰지 않는 일회성이기 때문에 소멸자와 같이 이용한다.

그래서 매번 다른 주소를 갖는 수행을 하게 된다.

 

#include <iostream>
using namespace std;

class A
{
public:
    int m_value;
    A(const int& input)
        :m_value(input)
    {
        cout << "Constructor" << endl;
    }
    ~A()
    {
        cout << "Destructor" << endl;
    }
    void print()
    {
        cout << m_value << endl;
    }
};

int main() {
    A a(1);
    a.print();
    A(1).print();

    return 0;
}

A a(1)이 기존의 클래스 생성 후 생성자를 이용한 코드이다.

그리고 a의 객체에 접근하여 print함수를 이용한다. 

 

익명 객체는 A(1) 을 이용하여 이름을 지어주지 않고 사용한다. l-value를 r-value처럼 이용하게 된다.

A(1) 시에 constructor를 통해 생성자를 지나고 1을 넣어준다 그리고 print함수에 접근하여 실행한다. 그 다음에 바로 destructor를 수행하게 된다.

 

a의 경우 이제 수행할 것이 없을 때 destructor를 수행하게 된다.

 

 

'c,c++ > c++ 관련 개념 및 문법' 카테고리의 다른 글

explicit 키워드, mutable 키워드  (0) 2023.07.11
함수 포인터  (0) 2023.07.09
nested class, types..  (0) 2023.07.09
l-value, r-value  (0) 2023.07.09
static 관련 정리  (0) 2023.07.09