본문 바로가기

Language25

Has A 관계를 표현하는 클래스 활용 기법 - 포함(Containment) 포함(Containment) Containment는 상속이외의 클래스를 재활용할 수 있는 C++ 기법이다. 타 클래스의 객체를 멤버로 선언하여 해당 클래스의 기능을 사용하는 방식이다. 포함된 객체는 클래스가 아닌 멤버이므로 ObjectName(objectmemeber1,2,3)과 같은 형식으로 초기화한다. 예제코드는 다음과 같다. #include #include #pragma warning(disable:4996) class Date { protected: int year, month, day; public: Date(int y, int m, int d) { year = y; month=m ; day = d; } void OutDate() { printf("%d %d %d", year, month, da.. 2021. 2. 22.
정적 멤버 변수, 함수 정적 멤버 변수란 클래스에 소속되지만 객체별로 할당되지 않고 모든 객체가 공유하는 변수이다. 모든 객체들이 공유하는 '공유 멤버'로 이해할 수 있다. 정적 멤버 변수는 static 키워드를 통해 선언된다. 예시 코드는 다음과 같다. #include class Simple { private: int value; static int count; //정적 멤버 변수 public: Simple() { count++; } ~Simple() { count--; } static void InitCount() { //정적 멤버 함수 count = 0; } static void OutCount() { printf("현재 객체 개수 = %d\n", count); } }; int Simple::count; int main(.. 2021. 2. 15.
복사 생성자 사용시 유의할 점 이미 생성된 객체로부터 값을 복사해 같은 값, 타입의 객체를 만들때 우리는 다음과 같은 형식의 생성자를 이용한다 #include #include #pragma warning(disable:4996) class Human { private: char name[12]; int age; public: Human(const char* aname, int aage) { strcpy(name, aname); age = aage; } void intro() { printf("이름=%s,나이 =%d\n", name, age); } }; int main() { Human kim("woogie", 26); kim.intro(); Human Lee = kim; //복사 생성자 사용 Lee.intro(); return 0; .. 2021. 2. 15.
int 변수의 앞자리가 0인 경우, 0123 = 83 ? Int prefix 최근 STL을 공부하며 연산자 오버로딩, 벡터등의 시퀀스 컨테이너를 지나 연관 컨테이너의 map부분을 공부하고 있다. 공부할 때 잡다한 코드들을 책 안보고 작성해보면서 문법에 익숙해지려 노력하는 편인데 의외의 오류가 발생해 적어놓는다. #include #include using namespace std; struct timetable { int time= 0123; int name= 23232; }q,w,e,r,t; int main() { mapm ; m.insert(pair(5, q)); m.insert(pair(3, w)); m.insert(pair(2, e)); m.insert(pair(4, r)); map::iterator iter; for (iter = m.begin(); iter != m.en.. 2021. 2. 3.