클래스 설계? 타입 설계? C++에서 새로운 클래스를 설계하는다는것은 타입을 설계하는 것과 같다. 왜냐하면 그 클래스에는 operator 오버로드, 메모리 할당 및 해제, 객체 초기화 및 종료 등 모두 클래스에서 하기 때문이다. 타입은 어떻게 설계 할것인가? EC++ 3판에서는 많은 것들 중 고수들은 몇가지 질문을 스스로 던저 자신을 괴롭히며 만든다고 한다. 1. 새로 정의한 타입의 객체 생성 및 소멸은 어떻게 이루어져야 하는가? 2. 객체 초기화는 객체 대입과 어떻게 달라야 하는가? 3. 새로운 타입으로 만든 객체가 값에 의해 전달되는 경우에는 어떤 의미를 줄 것인가? 4. 새로운 타입이 가질 수 있는 적법한 값에 대한 제약은 무엇으로 잡을 것인가? 5. 기존의 클래스 상속 계통망에 맞출 것인가? 6...
전체 글 검색 결과
인터페이스 설계란 무엇을 말하는 것일까? 클래스의 접근 권한을 이야기 하는것이 아닌, 클래스나 함수, 템플릿의 사용 환경을 말하는것이다. 그렇다면, 엉터리로 쓰게인 어렵게 하자는 말이 도데체 무슨 말일까? void f(int a, int b) 라는 함수가 있다고 치면, 이 두개의 int형은 서로 다른 속성이 있을 것이다. 그런데 사용하는 입장에선 엉터리로 1번째 매개변수 자리에 2번재 매개변수를 넣어도, 함수는 그 데이터 그대로 받아들여, 원하는 연산을 해주지 않게 된다! 그래서, 햇갈려 하는 함수에는 int형이 아닌, 속성을 가진 int형을 넣어 버리면, 제대로 쓰기엔 쉽게 되고 엉터리로 쓰기엔 어렵게 된다!(값을 넣을때 형 변환을... ㅋㅋㅋ) 이런 마인드로 동적 메모리로 할당한 객체의 참조자를 리턴..
무슨말?(제목이 조금 길다) 객체 생성 직 후 스마트 포인터에 저장한 다음, 그 스마트 포인터로 사용하라는 뜻 왜!? 메모리 누수가 발생될 수 있기 때문이다. 언제? 함수의 매개변수로써 스마트 포인터를 받을 때, 함수의 매개변수가 초기화가 이루어지는 타이밍이 각각의 컴파일마다 다르기 때문에, 매개변수 초기화가 만약.. 1. 동적 메모리를 할당 예, new CBabo 처럼 2. 함수의 리턴값을 매개변수로 할당 예, sence() 3. 스마트포인터에 동적 메모리를 담는다. 예) Smart_PTR pw에 1번의 리턴 담음 바로 이때 2번에서 예외가 발생하면, .. 1번은 영영 잃어 버리게 된다. 이렇게 매개변수 초기화 타이밍이 각 컴파일마다 다르고 바뀔 수 도 있다. 그래서 매개변수의 초기화가 언제 발생 되는..
1~4장까지 다 읽었다면 무슨 이야기 하는지 알수 있을 것 이다. 현실에선 언어를 통해서 다른 사람에게 정보를 준다 소켓에선 TCP 나 UDP를 통하여 다른 프로그램에게 데이터를 준다! (물론 TCP 나 UDP 말고 많이 있지만, .. 우선 제낀다.) 즉, TCP 나 UDP는 소켓 끼리 데이터를 주고 받기 위한 통신 규약(Protocol)이다! 자. 다시 그렇다면 TCP와 UDP는 무엇을 해 줄까? TCP(Transmission Control Protocl)는 데이터 전송 과정을 컨트롤 해 주는데, 데이터를 보내고 그 데이터가 잘 갔는지 확인을 해 준다. UDP(User Datagram Protocol)도 데이터 전송 과정을 컨트롤 해 주는데, 데이터를 보내고 그 데이터가 잘 갔는지 확인해 주지 않는다!..
전화번호는 내 전화기로 상대의 전화기에 연결을 하기 위한 번호를 뜻한다. 예) 010-5850-6666, 010-6666-4444 등 소켓 역시 이런 번호로 쓰는데 이런 번호를 IP 라 부른다. 이 IP는 인터넷 프로토콜(Internet Protocol)을 뜻하는데, 전화기처럼 상대의 컴퓨터를 찾기 위한 번호이다. 예) 127.0.0.1, 192.168.0.1, 223.145.9.45 등이 있다. 자. 이제 IP 를 알아 상대의 컴퓨터로 연결을 할수 있다고 생각한다면 오산이다!. 전화번호만 안다고 해서 원하는 사람과 통화 할수 없드시 말이다.(.. 물론 휴대폰은 높은 확율로 원하는 사람이 받지만, 가끔 다른 사람도 받지 않는가?) 즉 전화번호가 사람을 가르키는게 아니듯이, IP 역시 내가 통신하고 싶은 ..
저번장에 소켓이 전화기와 비슷하다고 설명했다면, 이번에는 소켓을 만드는 방법을 알아본다. 다시 전화기로 가서.. 내가 전화기를 들고 일본에 전화를 하면, 일본에선 받을것이고 나는 당연이 한국어로 말하고 일본에선 일본어로 말할것이다. 그러면, .. 서로 대화가 되지 않아, "무슨 소리를 지껄이는거야!" 라고 생각하고 끊어 버릴것이다. 그래서 서로 어떤 언어로 이야기 하자! 라고 규약을 만들었다. 네트워크 프로그래밍에선, 이 통신 규약을 "프로토콜(Protocol)" 이라 한다! 프로토콜의 종류로 치자면, .. 이미 개념 수준이 넘었기 때문에 제끼고, 일반적인 네트워크 프로그래밍에선 IPv4 인터넷 프로토콜(후에 IPv6 을 많이 사용할것이다)과 TCP, UDP를 많이 사용 한다고 알고만 있으면 된다. 전화..
최근댓글