전체 글328 3장. 배열, 링크드 리스트, 그리고 재귀 3.1 배열 사용 배열에 게임 엔트리 저장 배열에 객체들을 저장하는 것이 배열의 흔한 용도 그 외 병원에 환자들의 정보를 등록하는 것, 축구팀의 선수 이름을 등록하는 것.. 상위 점수 엔트리를 표현하는 객체에 무엇을 포함할 것인지를 생각한다 가장 간단히 떠오르는 건 score과 이름일 것이다. class GameEntry { public: GameEntry(const string& n = "", int s = 0); // 이름과 점수를 받는다. string getName() const;// getter int getScore() const;// getter private: string name;// 이름 int score;// 점수 }; 상위 점수 클래스 작성 Scores 클래스는 배열 entries의 .. 2022. 9. 5. 1-5. C++과 MASM 본 글은 코드누리의 Windows Programming 강좌를 개인 학습 목적으로 정리한 글 입니다. https://www.ecourse.co.kr/ 2022. 9. 5. 2장. 객체지향 설계 - 목표와 원리, 그리고 패턴 객체지향 프로그래밍의 주요 행위자는 객체이다. 객체는 클래스에서 나오며, 클래스는 객체가 실행할 수 있는 멤버함수와 데이터 멤버의 명세이다. 각 클래스는 외부세계에서 객체 내부의 너무 불필요한 상세를 알게 하거나 객체 내부의 동작들에 대한 다른 접근을 제공하지 않고, 이 클래스들의 인스턴스인 객체들의 간결하며 일관성 있는 관점만을 제공한다. 소프트웨어 구현에서는 견고성, 적응성, 재활용성을 달성해야 한다. 견고성 유능한 프로그래머는 정확한 소프트웨어를 개발하길 원한다 정확하다는 것은 예상되는 모든 입력에 올바른 출력을 만들어낸다는 것 정의되지 않은 예상치 못한 입력 값도 취급할 수 있어야 한다. 적응성 소프트웨어들은 시간이 지남에 따라 주위 환경의 조건들과 변화에 맞춰 발전할 필요가 있다. 소프트웨어의 .. 2022. 9. 5. 1-4. Stack Frame esp를 이용한 함수인자 접근 방식의 문제점 함수 내에서 스택을 사용할 수 없다. 함수에서 push로 인자를 넣을 경우 esp의 offset이 변경되기 때문 .model flat public _asm_main .code _asm_main: push 2 push 1 call _func add esp, 8 ret _func: mov eax, dword ptr [esp + 4] // _func에서 push를 할 경우, esp가 변경되므로 [esp + 8]이 된다 add eax, dword ptr [esp + 8] // _func에서 push를 할 경우, esp가 변경되므로 [esp + 12]이 된다 ret end 스택 프레임 그래서 레지스터 하나를 사용해 돌아갈 주소를 가리키도록 해놓음 (EBP 레지스터) E.. 2022. 9. 4. 이전 1 ··· 77 78 79 80 81 82 다음