[42Seoul] CPP07 template
42 Seoul2022. 7. 25. 17:38[42Seoul] CPP07 template

swap: 지정된 두 인수 값을 바꿉니다. 아무것도 반환하지 않습니다 min: 인수에 전달된 두 값을 비교하여 가장 작은 값을 반환합니다. 두 값이 같으면 두 번째 값을 반환합니다. max: 인수에 전달된 두 값을 비교하여 가장 큰 값을 반환합니다. 두 값이 같으면 두 번째 값을 반환합니다. 함수는 모든 유형의 인수로 호출할 수 있습니다. 유일한 요구 사항은 두 인수의 유형이 동일해야 하며 모든 비교 연산자를 지원해야 한다는 것입니다. template (참고1, 참고2) : 템플릿을 사용하면 클래스 또는 함수의 작업을 정의할 수 있으며 사용자가 이러한 작업이 작동해야 하는 구체적인 유형을 지정할 수 있습니다. template function_declaration; template function_decl..

[42Seoul] CPP06 type_casting
42 Seoul2022. 7. 23. 19:25[42Seoul] CPP06 type_casting

Additional rule The following rule applies to the entire module and is not optional. For each exercise, the type conversion must be solved using one specific type of casting. Your choice will be checked during defense. Exercise 00 문자열 표현을 매개 변수로 사용하는 프로그램을 작성한다. 이 리터럴은 다음 스칼라 유형 중 하나에 속해야 합니다. char literals : 'c', 'a' 간단하게 하기 위해, 표시할 수 없는 문자는 입력으로 사용해서는 안 된다는 점에 유의하십시오. 문자로 변환할 수 없는 경우 에서는 유용한 메..

[42Seoul] CPP05 try catch
42 Seoul2022. 7. 23. 14:29[42Seoul] CPP05 try catch

Exercise 00 exception class는 Orthodox Canonical Foam이 지켜지지 않아도 됩니다. 주어진 등급 외의 사용하여 인스턴스화하려는 것에 대해서 예외 처리를 해야 합니다. Bureaucrat::GradeTooHighException Bureaucrat::GradeTooLowException 필수적인 요소 constant name grade getters getName getGrade member function increment grade decrement grade overload of the insertion («) operator to print 갑작스러운 const에 대한 공부 const constant의 약자로 상수를 의미합니다 const 사용 const 변수 :..

[CPP 03~05] class, inheritance memory address
42 Seoul2022. 7. 21. 11:59[CPP 03~05] class, inheritance memory address

CPP Module 03을 평가를 받으면서 기존에 끝낸 @jaewkim 이후 과제에서도 알아두어야 한다! 이야기한 Class 의 메모리 영역 및 구성이 어떻게 되었길래 사이즈가 이렇게 나오는 지 포스트를 새로 하고자 한다. 주소값을 보게 되면 CPP Module에서 파생 클래스의 생성자가 발생될 때 기초 클래스가 불려진 후, 파생 클래스가 불려지는 지 추측을 해보게 됩니다. (사진2 참고, 각 생성자에 문구를 입력 시 기초 클래스가 먼저 출력되며 소멸자는 역으로 파생 클래스가 먼저 출력) image 1 을 통해서 보게되면 기초(부모) 클래스의 첫 번째 멤버 변수를 시작으로 파생(자식) 클래스 마지막 멤버 변수로 주소가 이어지는 것을 확인 할 수 있습니다. 해당 rosa 라는 인스턴스(객체)의 주소는 첫 ..

[42Seoul] CPP04 virtual
42 Seoul2022. 7. 15. 17:51[42Seoul] CPP04 virtual

Exercise 00 Animal 이라는 기본 클래스를 구현, 보호되는 특성은 각 type입니다. Animal로 상속한 Dog, Cat 클래스를 구현합니다. 두 파생 클래스는 이름에 따라 유형 필드를 설정, Dog 유형은 Dog로 Cat 유형은 Cat으로 초기화해야 합니다. Animal 클래스의 유형은 비워두거나 선택한 값으로 설정할 수 있어야 합니다. 울부짖어야 합니다 WrongAnimal 클래스를 상속하는 WrongCat 클래스를 구현합니다. WrongCat makeSound 함수 실행시, WrongAnimal이 울부짖어야 합니다. 무엇이 모른 채 왜 안될까만 하다가 Virtual 이라는 키워드를 던져준 @sanjeon 감사합니다. 가상 함수 virtual 멤버함수의원형; 부모 클래스에서 상속받을 클..

[42Seoul] CPP 03 클래스 상속
42 Seoul2022. 7. 15. 16:36[42Seoul] CPP 03 클래스 상속

Exercise 00 ATTACK과 HP를 채울 때, energy point가 1 소비 됩니다. HP가 없거나 energy가 없을 때에는 행동을 할 수가 없습니다. attack 함수로 대상이 공격받는 것과 데미지 등을 출력해야 합니다. 생성자와 소멸자 실행될 때에도 출력을 해야합니다. exercise 01 ScavTrap은 ClapTrap을 상속하게 됩니다. 생성자와 소멸자 그리고 공격함수는 다른 출력을 해야만 합니다. ScavTrap을 만들 때, ClapTrap을 만드는 것으로 시작해야합니다. 소멸자는 생성과는 앞 문단 상황과 반대로 나와야 합니다. ScavTrap과 ClapTrap의 명확하게 표기를 하기 위해 출력을 ex00과는 다르게 수정을 하였습니다. exercise 02 ClapTrap을 상속하..

[42Seoul] CPP 02
42 Seoul2022. 7. 11. 16:14[42Seoul] CPP 02

New rules Default constructor (참고, 참고) 클래스의 객체 생성 시에 private 멤버를 자동으로 초기화, 객체 생성시에 딱 한번 호출 Box() { /*perform any required default initialization steps*/} // All params have default values Box (int w = 1, int l = 1, int h = 1): m_width(w), m_height(h), m_length(l){} Copy consstructor (참고, 참고, 참고) 복사 생성자 는 동일한 형식의 개체에서 멤버 값을 복사하여 개체를 초기화 깊은 복사를 위해서는 사용자가 직접 정의를 해야합니다. 복사 생성자는 새롭게 생성되는 객체가 원본 객체와 같..

[42Seoul] CPP 01
42 Seoul2022. 7. 11. 09:57[42Seoul] CPP 01

General rules ▼ 더보기 General rules ▶ 클래스 이름을 UpperCamelCase 형식으로 작성합니다. 클래스 코드가 포함된 파일은 항상 클래스 이름에 따라 이름이 지정됩니다. 예를 들어: ClassName.hpp/ClassName.h, ClassName.cpp 또는 ClassName.tpp입니다. 그런 다음, 벽돌 벽을 나타내는 "BrickWall" 클래스의 정의가 들어 있는 헤더 파일이 있는 경우, 그 이름은 BrickWall.hpp가 됩니다. ▶ 달리 지정하지 않는 한 모든 출력 메시지는 줄 바꿈 문자로 끝나야 하며 표준 출력에 표시되어야 합니다. ▶ 달리 명시되지 않는 한 네임스페이스 키워드 사용 및 friend 키워드는 금지됩니다. ▶ C++에서도 메모리 누수가 발생합니다..

image