해당 글은 '윤성우의 열혈 C++ 프로그래밍'을 참고하여 작성함. (이하 해당 도서라고 지칭) 해당 도서의 상속파트에서 저자가 강조한 부분들 중 내가 느끼기에 중요한 규칙 3가지를 정리해보려고 한다. 이 3가지는 다음과 같다. 1. 접근제한의 기준은 객체가 아닌 클래스다. 2. 클래스의 멤버는 해당 클래스의 생성자에서 초기화한다. 3. 생성자에서 동적할당한 메모리 공간은 소멸자에서 해제한다. 본격적인 내용에 앞서 용어 정리를 해보려고 한다. 보통 클래스간 상속관계에서 하위 클래스에게 상속하는 클래스를 부모 클래스, 상위 클래스에게 상속 받는 클래스를 자식 클래스라고 한다. C++에서는 보통 부모 클래스를 기초 클래스, 자식 클래스를 유도 클래스라고 한다고 하니 앞으로 해당 용어를 사용할 것이다. 접근제한..
해당 글은 '윤성우의 열혈 C++ 프로그래밍'을 참고하여 작성함. (이하 해당 도서라고 지칭) C++에서의 대입 연산 시 호출되는 복사 생성자에 대해 알아보기에 앞서 자바에서의 대입 연산은 어떤 방식으로 진행되는지 먼저 살펴보고자 한다. (단순히 C++과 자바의 동작 방식의 차이를 보이고자 하는 것이니 생략하고 C++ 복사 생성자에 대한 설명부분으로 넘어가도 된다.) 자바에서 객체의 대입 연산은 참조값의 전달을 의미한다. 따라서 아래 코드의 실행결과는 다음과 같다. class Main { public static void main(String args[]) { Simple sim1 = new Simple(10); Simple sim2 = sim1; //sim1의 참조값 전달 System.out.print..
해당 글은 '윤성우의 열혈 C++ 프로그래밍'을 참고하여 작성함. (이하 해당 도서라고 지칭) 자바는 기본적으로 대입 연산이나 매개변수 전달에 객체의 참조를 전달하는 방식인 반면 C++은 복사 개념을 도입하면서 조금 복잡한 부분이 있는 것 같다. C++에서의 대입 연산, 매개변수 전달, 함수의 반환 시 호출되는 복사 생성자에 대해 알아보기에 앞서, 멤버 이니셜라이저의 개념을 먼저 살펴보려고 한다. 멤버 이니셜라이저란 생성자에서 멤버변수 초기화를 위해 사용되는 문법으로, 보통 멤버변수로 선언된 객체의 생성자 호출에 많이 활용된다. 이에 대한 간단한 예제는 다음과 같다. #include using namespace std; class Simple { private: int num; public: Simple..
해당 글은 '윤성우의 열혈 C++ 프로그래밍'을 참고하여 작성함. 나름 C언어 공부를 많이 했다고 생각하고 있었는데 처음 보는 개념이 나왔다. 정리도 할 겸 기록으로 남겨둔다. 먼저 C/C++에서의 const 키워드가 의미하는 바는 '초기화 후 재초기화가 불가능한 수' 즉 변하지 않는 수이다. 초기화 후 재초기화 함으로써 계속해서 값을 변경할 수 있는 일반적인 변수와 차이가 있다. 이러한 특성으로 const 키워드가 붙은 변수는 정의 시에 항상 초기화 해야 하고 이후 다시 값을 변경하지 못한다. 즉 다음과 같은 경우 컴파일 오류가 발생한다. //const int var; //오류 발생! (초기화 하지 않음) const int var2 = 10; //var2 = 20; //오류 발생! (재초기화) 책에서 ..
- Total
- Today
- Yesterday
- Spring Security
- SSE
- 디자인 패턴
- ParameterizedTest
- 서블릿 컨테이너
- github
- QueryDSL
- 템플릿 콜백 패턴
- spring boot
- 모두의 리눅스
- facade 패턴
- FrontController
- Linux
- Front Controller
- junit5
- spring
- 전략 패턴
- 단위 테스트
- rest api
- vscode
- Git
- servlet filter
- Java
- mockito
- Gitflow
- C++
- spring aop
- JPA
- Transaction
- Assertions
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |