전체 글 (157) 썸네일형 리스트형 [C++] friend, friend 함수 friend friend 키워드는 private 멤버의 접근을 허용해 주는 선언이다.friend 키워드는 클래스 내에 어디 존재하든 상관이 없다. private 영역에 존재해도 되고 public 영역에 존재해도 상관없다는 의미이다. 따라서 아래 코드처럼 작성하는 것이 가능하다. class Men {private: int age; friend class Women;public: Men (int num = 0) : age(num) { }};위 코드처럼 Men class에서 Women class에 friend 선언을 해주면 Women class에서도 age에 접근하는 것이 가능하다. 따라서 아래 코드처럼 사용하는 것이 가능하다. class Women {private: char name[20];p.. [C++] 연산자 오버로딩을 활용한 객체의 대입 복사 생성자를 활용한 객체의 대입 아래 코드처럼 복사 생성자를 활용하여 깊은 복사를 구현할 수도 있다. class Bag {private: int* data; size_t used; size_t capacity;public: Bag(size_t capacity) { data = new int[capacity]; this->capacity = capacity; used = 0; } Bag(const Bag& source) // 복사 생성자를 활용한 깊은 복사 { data = new int[source.capacity]; capacity = source.capacity; used = source.used; copy(source.data, source.used); } void copy(const .. [C++] 연산자 오버로딩 (멤버함수와 전역함수에 의한 연산자 오버로딩) 연산자 오버로딩 연산자 오버로딩은 주로 클래스를 다룰 때 함께 사용한다. 다음과 같은 코드를 작동시켰을 때에는 제대로 동작하지 않는다. #include class Pos{private: int x = 10; int y = 10;};int main(){ Pos a; Pos b; Pos c = a + b; return 0;} 그러나 위 코드를 생성자와 연산자 오버로딩을 통해 정상적으로 동작하게 만들 수 있다.+ 연산자에 대해서 재정의를 해주는 것이다. Pos(int x, int y) { this->x = x; this->y = y; } Pos operator+(const Pos& a) { Pos PlusPos(x .. [C언어] 포인터 선언과 메모리 관리 포인터 변수 선언 포인터 변수를 선언할 때 아래와 같은 형태로 선언을 할 수 있다. #include struct Box{ int width; int height; int length;};int main(){ struct Box* box_a; box_a.width = 10; box_a.height = 20; box_a.length = 20; return 0;} 그러나 위 코드처럼 선언한 포인터 변수를 바로 사용하게 되면 메모리 에러가 발생할 수 있다. 포인터 변수를 선언하면 변수의 주소를 담기 위한 8byte의 공간을 할당할 뿐구조체의 메모리 공간은 따로 할당하지 않기 때문이다. 따라서 포인터 변수를 선언하고 해당 포인터 변수가 가리키는 주소에 메모리를 할당해 주.. [Java] 객체 생성 (class) 객체 (Object) 클래스 변수를 객체 혹은 오브젝트라고 부른다. 클래스 변수를 선언할 때에는 new 키워드를 사용하여 동적으로 생성해 준다. class Box { double width; double height; double depth;}class BoxDemo { public static void main(String[] args) { Box mybox = new Box(); }} 인스턴스 변수 접근 객체가 실제로 사용될 때 이를 인스턴스(instance)라고 한다. 인스턴스 변수에 접근할 때에는 C++과 마찬가지로 dot 연산자를 사용한다. class Box { double width; double height; double depth;}class BoxDemo { .. [Java] main 함수, 출력 Java Java는 객체지향 언어로 클래스 단위로 동작한다. 즉, Java를 컴파일하기 위해서는 반드시 클래스가 필요하다. 심지어 main 함수마저도 class 내부에서 동작해야만 한다. 따라서 Java에서 main 함수는 아래와 같은 형태로 동작한다. class Example { public static void main(String [] args) { System.out.println(“This is a simple Java program.”); }} 출력 위 예제 코드에서 System.out.println은 개행을 포함하여 출력을 진행하는 역할을 한다. 만약 개행을 포함하고 싶지 않다면 System.out.print를 사용할 수 있다. Java는 변수를 출력할 때 따로 서식문자가 필요하지 않.. [유니티] Photon Warnings / PUN is in development mode (development build). As the 'dev region' is not empty (jp) it overrides the found best region. See PhotonServerSettings. Warning 아래와 같은 경고가 발생 PUN is in development mode (development build). As the 'dev region' is not empty (jp) it overrides the found best region. See PhotonServerSettings.UnityEngine.Debug:LogWarning (object)Photon.Pun.PhotonNetwork:OnRegionsPinged (Photon.Realtime.RegionHandler) (at Assets/Photon/PhotonUnityNetworking/Code/PhotonNetworkPart.cs:2546)Photon.Realtime.MonoBehaviourEmpty:Update () (at.. [C++] 객체 내에서 static 변수, static 멤버함수 객체 내에서 staitc 지역변수 static 변수를 클래스 안에서 선언할 수도 있다. static 변수는 객체를 생성할 때마다 각 개체에 부여되는 것이 아니라 프로그램이 시작할 때부터 메모리가 할당되며객체와 독립적으로 존재한다. 또한 모든 객체가 같은 static 변수를 공유한다. 다음 코드를 통해 이를 확인할 수 있다. #include using namespace std;class testclass {private: static int num;public: testclass() { num++; } void shownum() { cout 따라서 위 코드의 결과는 다음과 같다. 그런데 static 멤버변수를 정의하는 방법이 조금 독특할 것이다.아래 코드와 같이 클래스 내부에서 초기화하는 것이 아니.. 이전 1 ··· 4 5 6 7 8 9 10 ··· 20 다음