fundamental c++을 공부하고 정리한 내용입니다.형변환으로 사용된 double과 double& 차이점은 무엇인가? 일반 double의 경우는 rValue와 lValue 모두 형변환이 가능하지만,레퍼런스형은 lValue의 값만 형변환이 가능하다.i를 double
: 부모에서 자식으로의 형변환은 되지 않지만, 전혀 연관이 없는 클래스 간의 형변환이 가능한 것은 의문이다.(static_cast, reinterpret_cast에서 )허용하는 이유는 그렇게 사용해야만 하는 경우가 있기 때문이다. 알아보자!\-> 추상자료형을 넣는다면
선언과 동시에 괄호를 통해 초기화 할 경우선언과 동시에 대입연산자를 사용할 경우 복사 생성자를 호출하면 대상자의 생성자는 호출되지 않고, 바로 복사 생성자가 호출된다.: b의 생성자가 호출되지 않는 것을 확인할 수 있다.부모클래스의 기본생성자 호출멤버 클래스의 기본 생
\-> 암시적 복사 생성자로 인해 pA가 가리키는 곳과 B가 가리키는 곳의 메모리가 동일해진다. delete pA로 지우면 동일한 메모리를 가리키는 B의 참조값이 null값이 되어 문제가 발생하는데 이를 얕은 복사라고 한다. 이러한 문제를 해결하기 위해 개발자는 명시적
: 이전에 배웠듯이 부모와 다른 클래스를 멤버로 가질 경우, 생성자의 선처리 영역에서는 무조건 부모와 다른 클래스의 기본 생성자를 호출하게 된다. 하지만, 이니셜라이저를 이용하면 부모와 다른 클래스의 인자가 있는 생성자를 호출할 수 가 있다. 부모 클래스외부 클래스 자
ㅇㅇ
: 클래스의 모든 멤버 변수들은 선언한 순서에 따라서 메모리 위치 순서도 동일하다. 하지만 static변수와 멤버 함수는 클래스 메모리에 속하지는 않는다. 멤버함수들은 code 영역에 위치한다.static 변수들은 data 영역에 위치한다. : 해당 멤버 변수가 클래스
: 참조타입으로 받으면 실형식의 함수가 호출됨을 확인할 수 있다. p1이 parent의 함수를 호출하게 되는 이유는 암시적 복사 생성자에 의해 객체 c의 일부 메모리만 복사된 것이다.
: 인터페이스 타입을 통해 실형식 클래스의 함수를 호출하는데 있다. 인터페이스 사용으로 코드 간소화가 가능하다. : 함수의 정의는 함수의 주소의 유무를 결정하는 것이다. : 빌드에러는 없다. 함수를 호출하게 될 경우? : 함수를 정의하지 않아서 주소가 없기때문에 - 객
그럼 객체 생성하면 문제 없겠지??\-> 오잉??!!!8.6.1번 타임과 다른 것은 컴파일 에러라는 것이다. \-> 왜 이러한 현상이 발생한 것이냐면, 인터페이스 타입은 실제 클래스 형식으로 받아와서 사용하므로, 인터페이스의 함수를 사용할 필요가 전혀 없기 때문에, 이
1차 시도 : 생성자에서는 바로 순수 가상함수 호출이 불가능한 것을 확인할 수 있다. 2차 시도 : 우회하자. 이렇게 하면 링커는 문제없다고 생각한다.. \-> 결과 : 런타임 에러 발생한다. 중요한 것은 순수 가상함수는 호출하면 안된다는 것이다!
38.456 의 실수가 있음. 고정소수점의 경우는 정수 : 38 , 소수부분 : 0.456 으로 나뉘어짐. 부동소수점의 경우는 유효숫자 : 38456 / 소수점 위치 : 3으로 구분됨. \-> 따라서 부동소수점을 이용하면 더 많은 범위를 표현할 수 있음. 지수 부분은
: 비트 상태를 n만큼 왼쪽으로 이동함. : 비트 상태를 n 만큼 오른쪽으로 이동함. 단, 최상단에 있는 비트가 1일 경우, 즉 부호 비트가 존재할 경우.오른쪽 이동하더라도 자리 이동 사이의 비트는 모두 부호비트로 채움. 부호 비트가 존재하지 않다면, 그대로 이동함.
: 한글의 경우, 2바이트 , 또는 3바이트를 차지한다는 것을 염두해야 함.