목록Programming Language (136)
091
01. 템플릿(template) : 포괄적 함수(generic function)template T Max(T x, T y) { return x>y?x:y;} //typename을 사용해도 됨- 인자(매개변수)를 통한 다형성을 제공하며, 코드의 변화없이 형만 다른 함수가 필요한 경우에 사용하는 것이 좋음 -> 게빌지기 민들어야하는 코드를 컴파일러가 대신 만들기 때문에 템플릿을 사용하더라도 코드는 줄어들지 않음-> class 위치에 typename도 사용할 수 있는데 함수 템플릿에서는 typename을 더 선호하고 클래스 템플릿에서는 class를 더 선호- 참조자(reference) : 기존 변수에 대한 별명으로, 참조자를 통해 원래 변수를 직접 수정할 수 있음(원래 변수를 통해 참조자도 수정가능)#inc..
01. 오버라이딩(Overriding) : 가상함수(Virtual function)- 가상함수 : 부모 클래스 내에서 정의된 멤버함수를 자식 클래스에서 재정의하고자 할 때 사용, 기존의 클래스를 고치느니 상속을 받은 후, 가상함수를 이용하여 기존의 함수를 고쳐서 사용하는 방식을 채택 -> 상속 받은 함수(부모)를 실행하지 않고 자신(자식)의 함수를 실행- 오버라이딩 : 가상함수의 구현하는 방식으로, 같은 이름의 함수를 자식 클래스에서 재정의하여 사용함, 함수의 선언 부분이 전부 같아야함//overriding, 가상함수class A{public:virtual int SS(int i) {return(i*2);}};class B: public A{public:int SS(int i) {return(i*3);}..
01. 상속(Inheritance)//class 파생클래스명 : 상속접근제어 기본클래스명 {};class Dog : public Animal {};- 기본 클래스 : 다른 언어에서는 부모 클래스로 주로 불리며, 상속을 하는 클래스- 파생 클래스 : 다른 언어에서는 자식 클래스로 주로 불리며, 상속을 받는 클래- 상속 접근 제어자 : 접근 제어자인 public, protected, private를 기본 클래스명 앞에 작성하여 기본 클래스에서 상속받은 멤버들이 파생 클래스 안에서 어떤 접근 속성을 갖게할지 제어함 -> 기본 클래스의 속성이 private일 경우에는 어떤 방식으로도 상속받을 수 없음 ! - 인클래스 멤버 초기화(In-class member initializers) : 클래스 내부에서 초기값을 ..
01. 함수중첩(function overloading)- 함수 오버로딩 : 다형성을 제공하는 C++에서는 하나의 함수 이름을 중첩해서 사용 -> 하나의 함수명으로 여러 개의 유사 목적으로 사용-> 매개변수의 자료형이나 개수가 다른경우에 사용하는데 만약에 리턴값자료형만 다른경우에는 중첩이 불가능함int add(int i, int j) return (i+j);float add(float i, float j) return (i+j);double add(double i, double j) return (i+j);//double add(int i, int j) return (i+j); 반환값자료형만 다른 경우에는 오류남- 컴파일러가 자동으로 매개변수의 입력 자료형에 따라 해당하는 함수를 연결해줌class Dog{..
01. const 키워드const int x = 10;constexpr int y = 20;//컴파일 타임에 상수를 평가하고 최적화할 수 있어 배열크기, 템플릿 매개변수, 성능 최적화 등에서 사용하면 좋음- 변수에 const라는 키워드를 사용하여 상수(constant)의 의미를 갖게 하여 대입한 값 변경을 불가하게 만듦, 객체 선언 시에도 붙일 수 있는데 초기화된 데이터를 변경할 수 없는 상수객체가 됨void func(const int); //매개변수가 constconst double func(int); //리턴값이 const, reference(&)를 리턴하는 경우 void fun(void) const; //함수가 const, 멤버변수를 변경하지 않는 함수//매개변수명이 생략하여 함수 선언이 가능하지만..
01. 배열(Array)//자료형 배열명[첨자(인덱스)];int score[7] = {10,20}; //나머지 요소(element)들이 전부 0으로 초기화double weight[2] = {10,20,30}; //error : 이니셜라이저가 너무 많습니다.char name[] = "Gongguil";//2차원배열int x[2][3] = {10,20,30,40,50,60};std::cout - 배열 : 연속적인 항목들이 동일한 크기의 순서를 갖고 나열되어 있는 데이터의 집합- 문자 배열은 문자열 형태로 초기화 될 수 있고, 널 문자(NULL,'\0')가 자동으로 마지막 원소에 할당됨 -> name의 원소의 개수는 9개- 배열의 이름은 배열의 시작주소 : score ==&score[0] -> x==x[0]..
* 언급이 없을 경우 기즈모방향이 왼쪽좌표계인 경우를 기준으로 말하고 있습니다. *01. 바람개비 돌리기-> Cube scale (10,30,1), rotation(0,0,0)using System.Collections;using System.Collections.Generic;using UnityEngine;//using UnityEngine.SceneManagement;public class vane_ggi : MonoBehaviour{ void Update(){ transform.Rotate(0,0,-10); }}02. 위에서 아래로 내려오는 공이 다시 위로 올라가기-> Sphere scale(3,3,3)using System.Collections;using System.Co..
01. Prefab- Unity에서 재사용 가능한 게임 오브젝트 템플릿으로, 여러 번 재사용하거나 다양한 씬에서 일관되게 사용할 수 있음-> 특정 키코드를 눌렀을 때 설정된 프리랩을 복제하는 코드using System.Collections;using System.Collections.Generic;using UnityEngine;//using UnityEngine.SceneManagement;public class In_ggi : MonoBehaviour{ public GameObject nameC; void Update(){ if(Input.GetKeyDown(KeyCode.Z)) Instantiate(nameC, nameC.transform.position,..