Загружаем каталог…
Загружаем каталог…
객체란 무엇인가? 컴퓨터적 시선에서 설명하면 무언가를 표현하기 위해, [상태(데이터)]와 [행동(기능)]을 하나로 묶어놓은 단위를 말한다 ex) 속성 (Attribute / 변수-데이터): 색상, 속도, 차종, 모델명, 가격 등 기능 (Method / 함수-기능): 출발하기, 정지하기, 가속하기 객체지향 프로그래밍 (Object Oriented)방식 : 데이터(변수)와 기능(함수)을 하나의 '객체' 단위로 묶어서 관리. 장점: 관련된 데이터와 함수를 한곳에 묶어 유지보수가 쉽고 구조가 명확해짐 클래스란 무엇인가? 앞서 '객체'가 실제로 만들어진 물건이라면, 클래스는 그 물건을 어떻게 만들지 적어놓은 설명서라고 보면 된다. 예를 들어 '클래스 = 붕어빵 틀'이라하면 객체는 그 틀로 만들어진 실제 붕어빵이다. 이런 걸 인스턴스라고 하는데, 인스터스란 현실의 객체를 소프트웨어 내에서 구현한 실체이다. 클래스 코드 안에는 딱 두 가지만 정의한다. 멤버 변수 (상태 / 데이터): 이 객체가 가져야 할 정보 멤버 함수 (기능 / 동작): 이 객체가 할 수 있는 행동 - 멤버함수의 생성자(Constructor) 객체가 생성 될 때 딱 한 번 자동으로 호출되며 변수를 초기화 해준다. - 생성자만의 2가지 특별한 규칙 ⚠️ 함수의 이름이 클래스 이름과 정확히 똑같아야 함! 반환 타입(void, int 등)을 절대로 적지 않음! 아래는 클래스의 기본 코드 형태이다. class Car { public: // [멤버 변수] string color; int speed; // ★ 이것이 바로 생성자! // 1) 이름이 클래스 이름(Car)과 완전히 동일함 // 2) 앞에 void나 int 같은 반환 타입을 안 붙임 Car() { color = "하얀색"; // 차가 생성될 때 기본 색상을 하얀색으로 세팅 speed = 0; // 차가 생성될 때 기본 속도를 0으로 세팅 cout << "새로운 자동차가 출고되었습니다!" << endl; } // [일반 멤버 함수] - 비교용 void accelerate() { speed += 10; } }; 아래는 위 차량 클래스를 바탕으로 찍어낸 자동차 객체 이다 int main() { // 설계도(Car)를 보고 실제 객체(myCar, friendsCar)를 만듦! // 여기서 'myCar'라는 객체를 생성하는 순간! // 개발자가 직접 호출하지 않아도 Car() 생성자가 '자동'으로 실행됨! Car myCar; Car friendsCar; // 내 차 설정 myCar.color = "빨강"; myCar.speed = 0; myCar.accelerate(); // 내 차 속도 +10 // 친구 차 설정 friendsCar.color = "파랑"; friendsCar.speed = 50; // myCar와 friendsCar는 같은 설계도로 만들어졌지만 // 서로 완전히 별개의 객체! } 아래 3가지는 c++에서 꼭 알아야할 주요 규칙이므로 잘 숙지해두자 1. 멤버 변수 초기화 위치 클래스 정의 내부에서 변수를 선언할 때는 메모리가 할당되지 않는다. 변수 초기화는 객체가 만들어질 때 호출되는 생성자 내부에서 진행해함 C++개념상 클래스는 단순한 설계도 느낌. 즉 메모리를 전혀 차지하지 않는다. 존재하지도 않는 메모리에값을 저장할 수는 없잖아? 2. 객체 생성 시 괄호() 사용 주의 (매우 중요!) 인수 없는 생성자 호출 시: Circle c1; 처럼 괄호 없이 선언해야 함. Circle c1(); 이라고 쓰면 C++ 컴파일러는 이를 객체 생성이 아닌 "함수 선언"으로 오인하여 컴파일 오류가 발생! 인수 있는 생성자 호출 시: Circle c1(5.0); 처럼 괄호 안에 값을 넣어 생성. Car myCar; // (O) 정답! "myCar라는 자동차 객체 하나 만들어줘!" Car myCar(); // (X) 에러! C++ 컴파일러: "어? 'myCar'라는 이름을 가진, Car를 반환하는 함수를 선언하는 건가?" 하고 오인함! Car myCar("빨강", 100); // (O) "빨간색, 속도 100짜리 차 만들어줘!" * 3. 객체 간 대입 연산자 (=) 복사 c1 = c2;와 같이 대입하면 c2의 멤버 변수 값들이 c1의 멤버 변수로 1:1 복사됨. 복사 후에도 c1과 c2는 메모리상 별개의 객체로 존재 . *
То, что RADAR обнаружил и классифицировал для этой возможности. Это опубликованный источником текст, а не подтверждение, что предложение ещё действует.
객체와 클래스. 객체란 무엇인가? 컴퓨터적 시선에서 설명하면 무언가를 표현하기 위해, [상태(데이터)]와 [행동(기능)]을 하나로 묶어놓은 단위를 말한다 ex) 속성 (Attribute / 변수-데이터): 색상, 속도, 차종, 모델명, 가격 등 기능 (Method / 함수-기능): 출발하기, 정지하기, 가속하기 객체지향 프로그래밍 (Object Oriented)방식 : 데이터(변수)와 기능(함수)을 하나의 '객체' 단위로 묶어서 관리. 장점: 관련된 데이터와 함수를 한곳에 묶어 유지보수가 쉽고 구조가 명확해짐 클래스란 무엇인가? 앞서 '객체'가 실제로 만들어진 물건이라면, 클래스는 그 물건을 어떻게 만들지 적어놓은 설명서라고 보면 된다. 예를 들어 '클래스 = 붕어빵 틀'이라하면 객체는 그 틀로 만들어진…
Открыть источник