그냥 저렇게 이해하면됨??
예제 보니까 클래스 그 자체를 끌어다 쓰는 경우에는 const Aaa & a1 뭐 이런식으로 하던데
배운건데 안쓰니까 기억이 안남. 패스
참조할때는 메모리 주소값을 들고가서 해당값을 불러오게 되는데
일반 변수들은 &을 붙이면 주소의 형태를 띄게 되고 포인터는 그냥 주소값이라 뭐안붙여줘도 되는것.
포인터는*로 하는게 아니라 *붙은게 포인터라는 의미임
참조든 포인터든 모든 자료형에서 사용가능함.
C시절엔 참조라는 개념을 쓰고 싶은데 언어의 제약으로 참조라는 기능을 포인터로 사용했던것이라서
C++로 오면서 참조기능을 추가한거임
사실 컴퓨터입장에선 포인터나 참조나 똑같음
그럼 생성자든 함수든 매개변수로 클래스 그 자체를 참조하고 싶으면 *를쓰든 &를쓰든 상관없다는 뜻임??
ㄴㄴ 생성자에서 쓰는 참조는 C++기본 스펙으로 복사 생성자는 const 참조를 쓰도록 명시 되어있는거임
대신 기본 스펙이 아닌 부분에서는 포인터를 쓰던 말던 상관은 없다만... 쓰레드 쓸거 아닌 이상 참조로 넘겨주는게 나음
그럼 복사생성자를 쓸려면 무조건 &를 써야한다는건가보네
ㅇㅇ
클래스는 & 포인터는 *이 먼소린지 모르겠다
참조는 죄다 &
포인터는 *
클래스의 포인터도 *
포인터를 참조할댄 & (이런일이 없어야겠지만)
복사생성자할때 매개변수를 const ~~ & ~~ 이런형태로 쓰는데 이게 C++의 참조자 개념으로 쓰는건지 아니면 일반 변수의 포인터 선언을 클래스는 &를 붙여서 표현하는건지 몰라서 물어본거
참조자 개념으로 쓰는거임
매개변수가 넘어올때 일반 변수 선언이 되있으면
~~~~ (const ~~ a){
}
복사 생성자가 호출 되면 매개 변수를 넘기기 위한 복사 과정에서 다시 복사 생성자를 호출시켜서 무한 루프에 빠지기 때문일껄..?
네슬
배운건데 안쓰니까 기억이 안남. 패스
esibel
참조할때는 메모리 주소값을 들고가서 해당값을 불러오게 되는데
일반 변수들은 &을 붙이면 주소의 형태를 띄게 되고 포인터는 그냥 주소값이라 뭐안붙여줘도 되는것.
포인터는*로 하는게 아니라 *붙은게 포인터라는 의미임
잉텔
참조든 포인터든 모든 자료형에서 사용가능함.
C시절엔 참조라는 개념을 쓰고 싶은데 언어의 제약으로 참조라는 기능을 포인터로 사용했던것이라서
C++로 오면서 참조기능을 추가한거임
사실 컴퓨터입장에선 포인터나 참조나 똑같음
Tbps
그럼 생성자든 함수든 매개변수로 클래스 그 자체를 참조하고 싶으면 *를쓰든 &를쓰든 상관없다는 뜻임??
잉텔
ㄴㄴ 생성자에서 쓰는 참조는 C++기본 스펙으로 복사 생성자는 const 참조를 쓰도록 명시 되어있는거임
대신 기본 스펙이 아닌 부분에서는 포인터를 쓰던 말던 상관은 없다만... 쓰레드 쓸거 아닌 이상 참조로 넘겨주는게 나음
Tbps
그럼 복사생성자를 쓸려면 무조건 &를 써야한다는건가보네
잉텔
ㅇㅇ
8AiTNaVl
클래스는 & 포인터는 *이 먼소린지 모르겠다
참조는 죄다 &
포인터는 *
클래스의 포인터도 *
포인터를 참조할댄 & (이런일이 없어야겠지만)
Tbps
복사생성자할때 매개변수를 const ~~ & ~~ 이런형태로 쓰는데 이게 C++의 참조자 개념으로 쓰는건지 아니면 일반 변수의 포인터 선언을 클래스는 &를 붙여서 표현하는건지 몰라서 물어본거
8AiTNaVl
참조자 개념으로 쓰는거임
매개변수가 넘어올때 일반 변수 선언이 되있으면
~~~~ (const ~~ a){
}
복사 생성자가 호출 되면 매개 변수를 넘기기 위한 복사 과정에서 다시 복사 생성자를 호출시켜서 무한 루프에 빠지기 때문일껄..?