프로그래밍 공부

2024/02/05 4

  • 8.2 여러 종류의 데이터 멤버 C++는 여러 종류의 데이터 멤버를 지원한다. 단순한 데이터 멤버 외에도 특정 클래스의 모든 객체 간에 공유되는 static 데이터 멤버도 있고,const 멤버, 참조 멤버, const 참조 멤버 등 다양하게 존제한다. 8.2.1 static 데이터 멤버 어떤 경우에는 클래스의 객체별로 변수를 따로따로 가지는 것이 너무 중복되거나 의도에 맞지 않을 수 있다. 다시말해, 어떠 ㄴ데이터 멤버가 특정 클래스에 종속되기는 하지만 객체별로 따로 복제본을 가지는 것이 불합리할 수 있다. 예를 들어 각 스프레드 시트마다 순번을 매기려 한다고 하자, 순번을 중복되지 않게 0부터 순차적으로 부여하려면 최종 순번으로 몇 번이 부여되었는지 관리해야 한다. 이 값은 분명 SpreadSheet클..

  • 8. 클래스와 객체 마스터하기 8.1 동적 메모리 할당을 통한 객체 생성 메모리가 얼마나 필요할지 프로그램을 실행해보기 전에는 알 수 없는 떄도 있다. 이미 알고 있듯이 이럴 떄에 대한 해답은 동적 메모리 할당이다. 클래스 또한 예외가 아니다. 클래스를 정의 할 때 멤버 객체가 메모리를 얼마나 소요할지 알 수 없는 경우가 있다. 이때 그 객체는 동적으로 메모리를 할당받아야 한다. 동적으로 할당된 객체는 메모리 해제, 객체 복제, 객체 대입 연산 등과 관련해서 조금 까다로운 부분이 있다. 8.1.1 SpreadSheet 클래스 7장에서 만들었던 클래스를 예제로 활용한다. SpreadSheetCell이 그랬듯이 SpreadSheet클래스도 이 장에서 점진적으로 강화해 나갈 것 이다. 각 버전의 SpreadS..

  • 문제 설명 어떤 숫자에서 k개의 수를 제거했을 때 얻을 수 있는 가장 큰 숫자를 구하려 합니다. 예를 들어, 숫자 1924에서 수 두 개를 제거하면 [19, 12, 14, 92, 94, 24] 를 만들 수 있습니다. 이 중 가장 큰 숫자는 94 입니다. 문자열 형식으로 숫자 number와 제거할 수의 개수 k가 solution 함수의 매개변수로 주어집니다. number에서 k 개의 수를 제거했을 때 만들 수 있는 수 중 가장 큰 숫자를 문자열 형태로 return 하도록 solution 함수를 완성하세요. 제한 조건 number는 2자리 이상, 1,000,000자리 이하인 숫자입니다. k는 1 이상 number의 자릿수 미만인 자연수입니다. 입출력 예 number K return "1924" 2 "94" ..

  • 공격방식을 추가하여 다체롭개 해보자. 기존에 사용하였던, 소드모션의 동작방식을 재활용하여 마법 공격 방식을 추가한다. 입력 액션 설정 공격모션의 시작점인 무기 장착이다. 전에 만들었던 Sword의 장착키는 1 이고, Wizard의 장착키는 2로 설정하여 동작시킬 것 이다. Combat을 참조하여, 현재 Combat에 따라 장착한것이 없을 때는 StartWizardMode를, 칼을 들고 있을 때 는, Sheath Sword를, 아니라면 내가 마법모션 이었을 경우, WizardMode를 종료시킨다. 기본 상태에서는 마법모드를 시작하고, 칼을 들고 있을 때는 칼을 넣고 마법을 들어야 할 것 이다. 이러한 과정을 통합하여, 좀 더 자연스럽게, 전환을 실행 -> 전환시에 모션 판별을 하여 코드를 자연스럽게 구성시..