프로그래밍 공부

서울게임아카데미 교육과정 6개월 C++ ~ DirectX2D 76

카테고리 설명
  • 프로그래밍에서 객체관계는, 각 구조체 간의 상호작용을 정의한다. 이는 클래스간의 관계 라고 도 이해할 수 있으며, 총 5가지 유형으로 분류할 수 있다. 연관(Association) Assocation은 두 클래스가 서로를 사용하는, 서로가 상속된 관계라고 할 수 있다. 이는 "사용한다" 또는 "알고있다"로 정의할 수 있는데, 서로가 서로의 값을 이용하거나 함수를 사용할 수 있는 관계라고 할 수 있다. 예를들어 '학생'클래스와 '교수'클래스가 있다면, '학생'은 '교수'가 누구인지, 어떠한 과목을 가르치는지 알고, '교수'는 학생이 누구인지 몃학년인지 등의 정보를 알 수 있을것이다. 이것은 두 클래스가 독립적으로 존재하면서도 서로를 참조할 수 있는 관계를 나타낸다. 집합(Aggregation) Aggreg..

  • C++에서 class가 생성될 때 기본적으로 만들어지는 것 또한 operator하여, 바꾸어줄 수 있다. class간의 복사, 이동, 대입, 소멸 을 조정하여 class의 값변경을 더 자유롭고 편하게 지정해주는 방법이다. #include using namespace std; class Test { int num1; int num2; public: // 클래스가 만들어졌을 때 기본으로 들어가는 것 // 기본 // 복사 // 이동 // 복사 대입 // 이동 대입 // 소멸 // 기본생성자. 로 취급되어 기본생성자는 사라진다. /*Test(int n1, int n2) : num1(n1), num2(n2) {}*/ Test(int n1, int n2) : num1(n1), num2(n2) {} }; class ..

  • C++에서는 smart_pointer이라는 기법을 활용하여 더 쉽고 간단하게 동적배열 선언 등 다양한 방법으로 사용이 가능하다. smart_pointer를 사용하면 new를 생성해주어도, 어떠한 함수 내부에서 종료되었을 때, 종료자가 스스로를 delete해주기 때문에, 따로 delete해줄 필요가 없어진다. 그럼으로 더 쉽고 간단하게 동적데이터 선언이 가능해진다. 다음은 코드 예시이다. #include class ptr { int x; int y; public: ptr(const int x, const int y) : x(x), y(y) {} auto Get_x() -> const int { return x; } auto Get_y() -> const int { return y; } friend ptr&..

  • C++에서 operator을 활용하여 비교연산자를 오버로딩하고, 이를 활용해서 Class 안에 있는 모든 변수를 비교연산 해줄 수 있다. 보통, 비교연산을 위한 변수가 한개이거나, 모든 변수를 전부 비교해야 할 경우 사용하고, 여러개의 변수를 가지는 Class가 존재하고, 그 변수들 중 한개의 변수만 비교연산이 필요하다면, 그럴때 에는 operator의 사용을 권장하지 않는다. 비교연산자 같은 연산자 오버로딩 방식은, 어떠한 변수나 Class의 전체를 비교하거나 연산하는 방식으로 동작해야 하기 때문에 설계방식에서 벗어나기 때문이다. 다음은 비교연산자를 오버로딩하여 만든 코드 예시이다. 위 코드에서, 연산자 오버로딩을 활용하여 비교연산을 해줄 수 있는것을 볼 수 있다. 값의 변환을 유도하지 않기 때문에, ..

  • C++ 에서 사용하는 연산자 오버로딩을 입.출력으로 사용하는 >> 와

  • C++에서는 Class 내부의 private 멤버에 대한 접근허용을 위해 다른 클래스 나 함수가 접근할 수 있도록 Friend 선언을 허용한다. Friend선언을 사용하면, Pirvate 멤버에 대한 접근 제어를 우회하여, 다른 클래스나 함수에서 해당 멤버를 직접 접근할 수 있다. Friend 선언은 다음과 같은 상황에서 사용된다. 두개 이상의 클래스가 서로의 private 멤버에 접근해야 할 때 특정 함수가 클래스의 private 멤버에 접근해야 할 때 특정 클래스의 인스턴스를 생성해야 할 경우 다른 클래스의 private 멤버를 초기화해야할 때. Friend 선언은 다음과 같다. 그러나, 이러한 방법으로 전역함수 취급되어 사용하는것 보다는, 각 지정한 Class에 friend선언하여, 해당 class..