inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part1: C++ 프로그래밍 입문

vector #1

임시 객체 질문

381

n9203

작성한 질문수 134

0

swap함수를 설명하시면서 임시벡터라는 말이 나왔는데

 

임시 벡터라는 말이 

 

class Knight
{
public:
    Knight()
    {
        cout << "Knight()" << endl;
    }
public:
    int _a = 10;
};

int main()
{
    Knight k1; // 스택에 생성

    int value = Knight()._a; // 임시 객체?

    return 0;
}

이런 클래스가 있을 경우 main함수안에서

Knight k1; 해주면 Knight의 객체가 스택에 생성된 것이고

다시 main함수 내에서

int value = Knight()._a; 를 해준다는 말이

 

객체라는 것이 어떤 클래스와 같은 '설계도'의 오브젝트)객체)인데 

 

이 객체를 만들면 설계도의 '생성자' 함수가 호출이 된다.

질문1. 생성자 함수를 호출을 어떻게든 한다면은 '객체'를 만들 수 있다는 말인가요?

 

이말이 맞다면

public:을 열러있는 Knight의 생성자를 강제?로 호출하여 객체를 만드는데

 

그 객체의 멤버 변수인 _a를 value에 대입해준다.

 

근데 Knight() 생성자만 호출하고 다른 객체 변수에(Knight타입의 변수) 할당하지 않아서 

사용되지 않는 메모리라 컴파일러가 알아서 소멸자를 호출 시키기 때문에

'임시객체'라고 하는 것인가요?

 

강의에서는 그냥 벡터이기때문에 임시 벡터라고 한간가요?

C++

답변 1

0

Rookiss

네 그렇습니다. 이런 부분은 어셈으로 까보면 도움이 됩니다.

visualstudio에서 파일분할관리실습시 설정 문의를 드립니다.

0

616

1

정렬함수 좀 더 확실하게 이해 할 방법이 있을까요?

0

547

1

strcpy() 구현 관련 질문

0

610

1

빌드(망치)를 누르니 이런 오류가 떴습니다. 어떻게 해야 하나요?

0

531

1

클래스 타입의 포인터 질문합니다

0

608

1

입력값을 enum 값에 넣어주는거 이제 막혔나요?

0

543

1

템플릿 특수화 관련 질문

0

422

1

포인터 관련 질문합니다!

0

306

1

Unable to start assembler. Check your settings.

0

898

2

cpu선택

0

584

1

포인터 질문이 있습니다

0

376

1

20:35 에서 구조체 크기에 대한 질문입니다!

0

618

1

iterator 삭제관련

0

453

1

함수 호출을 디스어셈블러로 분석하다가 궁금점이 생겼습니다!

0

356

1

15 분 45초 대 질문

0

347

0

스택 프레임 질문합니다!

2

356

1

오른값 참조 in 게임

0

427

0

동적할당 질문이 있습니다

0

491

1

안녕하세요 메모리에 대해 질문드립니다.

0

390

1

함수객체 의 매개변수

0

407

1

복사생성자

0

480

1

main이나 endl 부분이 주황색으로 표시된건 어떻게 하나요

0

474

1

포인터 실습 강의를 보고 궁금한게 있습니다.

0

390

1

스택 오버플로우

2

850

1