프로그래밍

포스트: 83
Tags

Posts

83 posts

[C++] base 클래스(부모 클래스)의 초기화 순서

프로그래밍 일지|2019년 1월 18일

[상속 관계에서 클래스의 초기화 순서에 대하여] Class가 생성될 경우 생성자가 호출된다. 이 클래스가 Base Class (부모 클래스)를 가진다면 유도된 (상속받은) Class 보다 먼저 초기화된다. Base Class의 초기화는 default 생성자를 사용하거나 유도된 Class에 작성된 base Class의 생성자를 사용하여 이루어진다. 그렇다면 다중 상속을 지원하는 C++에서 Base Class가 여러개 있을 경우 어떤 순서로 초기화가 되는 것일까? 다중 상속 Class 초기화 시 호출 순서는 아래의 기준으로 결정된다.Base Class들이 먼저 호출되는데 상속 시 나열한 순서 (아래 [코드 1]의 경우 30번 줄 참고) 대로 초기화.Member 객체들의 초기화생성자의 Code 아래의

[C++] C2440 : const char[]에서 char*로 변환할 수 없습니다 에러에 관하여

프로그래밍 일지|2019년 1월 17일

[그림 1] C2440 ERROR 문자열 리터럴을 사용하기 위해서 char* 형태의 변수를 선언했을 때 [그림 1]과 같은 에러가 발생한다.에러의 내용은 "aa"라는 문자열은 const(상수)값인데 변수에 그 값을 집어넣으려고 하니 에러가 발생한다는 것이다. 도대체 이런 에러가 왜 발생하는 걸까? 이런 에러가 발생하는 이유를 MSDN에서는 다음과 같이 설명하고 있다. C2440 can be caused if you attempt to initialize a non-const char* (or wchar_t*) by using a string literal in C++ code, when the compiler conformance option /Zc:strictStrings is set.

[C++] 월별 날짜 수, 윤년 계산기 코드

프로그래밍 일지|2019년 1월 16일

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576#pragma once#include using namespace std; class Date { int month; int day; int year; public: Date(int m, int d, int y) : month(m), day(d), year(y) { if (month == 2 && day == 29) cout << "incorrect

DIY 휴대폰 키트, 메이커폰

어린 시절, 전자 키트라는 물건을 좋아했다. 미리 만들어진 기판에 정해진 부품을 납땜하는 일이 전부였지만, 도둑 경보기나 라디오를 비롯해 이런저런 기기를 직접 만들 수 있었으니까. 전자 키트, 과학 상자, 조립식 장난감(프라모델+모형 비행기)이 우리 세대 남자아이들의 3종 선물 세트였다고 해도 좋다. 요즘에는 아두이노나 라즈베리 파이, 또는 3D 프린터가 전자 키트를 대신하는 모양이다. 한번 해볼까-하고 들여다본 적이 있는데, 생각보다 어렵게 느껴져서 관심을 접었다. 쓸 수 있는 물건을 직접 만든다-라기보다는, 아두이노 같은 키트를 '써보기 위해' 무엇인가를 만든다-라는 느낌이 더 강했다. ... 하아, 스마트폰을 조립할 수 있다면 참 좋을 텐데 말이지. 한숨을 쉬는 사이, 킥스타