C 언어
이 튜토리얼에서는 객체와 클래스에 대해 배우고 예제를 통해 C++에서 사용하는 방법을 배웁니다.
이전 자습서에서 함수와 변수에 대해 배웠습니다. 때로는 논리적이고 작업하기 쉽도록 관련 기능과 데이터를 한 곳에 배치하는 것이 바람직합니다.
직사각형 방의 길이, 너비, 높이를 저장하고 면적과 부피를 계산해야 한다고 가정합니다.
이 작업을 처리하기 위해 length와 같은 세 개의 변수를 만들 수 있습니다. , 너비 , 및 높이 calculateArea()
기능과 함께 및 calculateVolume()
.
그러나 C++에서는 별도의 변수와 함수를 만드는 대신 이러한 관련 데이터와 함수를 한 곳에서 래핑할 수도 있습니다(객체 ). 이러한 프로그래밍 패러다임을 객체 지향 프로그래밍이라고 합니다.
하지만 객체를 만들기 전에 C++에서 사용하려면 먼저 클래스에 대해 알아야 합니다. .
클래스는 객체의 청사진입니다.
우리는 클래스를 집의 스케치(프로토타입)로 생각할 수 있습니다. 여기에는 바닥, 문, 창문 등에 대한 모든 세부 정보가 포함되어 있습니다. 이러한 설명을 기반으로 집을 짓습니다. 집이 오브제입니다.
클래스는 class
키워드를 사용하여 C++로 정의됩니다. 뒤에 클래스 이름이 옵니다.
클래스의 본문은 중괄호 안에 정의되며 끝에 세미콜론으로 종료됩니다.
class className {
// some data
// some functions
};
예를 들어,
class Room {
public:
double length;
double breadth;
double height;
double calculateArea(){
return length * breadth;
}
double calculateVolume(){
return length * breadth * height;
}
};
여기에서 Room
라는 클래스를 정의했습니다. .
변수 길이 , 너비 , 및 높이 클래스 내부에 선언된 것을 데이터 멤버라고 합니다. . 그리고 함수 calculateArea()
및 calculateVolume()
멤버 함수라고 합니다. 수업 중입니다.
클래스가 정의되면 개체에 대한 사양만 정의됩니다. 메모리나 스토리지가 할당되지 않았습니다.
클래스에 정의된 데이터 및 접근 기능을 사용하려면 객체를 생성해야 합니다.
<시간>
className objectVariableName;
Room
객체를 생성할 수 있습니다. 클래스(위의 예에서 정의됨)는 다음과 같습니다.
// sample function
void sampleFunction() {
// create objects
Room room1, room2;
}
int main(){
// create objects
Room room3, room4;
}
여기 두 개의 개체 room1 및 방2 Room
의 클래스는 sampleFunction()
에서 생성됩니다. . 마찬가지로 room3 개체는 및 방4 main()
에서 생성됩니다. .
보시다시피 프로그램의 모든 기능에서 클래스의 개체를 만들 수 있습니다. 클래스 자체 또는 다른 클래스에서 클래스의 개체를 만들 수도 있습니다.
또한 단일 클래스에서 원하는 만큼 개체를 만들 수 있습니다.
<시간>
.
을 사용하여 클래스의 데이터 멤버 및 멤버 함수에 액세스할 수 있습니다. (점) 연산자. 예를 들어,
room2.calculateArea();
그러면 calculateArea()
이 호출됩니다. Room
내부의 함수 room2 개체에 대한 클래스 .
마찬가지로 데이터 멤버는 다음과 같이 액세스할 수 있습니다.
room1.length = 5.5;
이 경우 length를 초기화합니다. room1의 변수 5.5
으로 .
// Program to illustrate the working of
// objects and class in C++ Programming
#include <iostream>
using namespace std;
// create a class
class Room {
public:
double length;
double breadth;
double height;
double calculateArea() {
return length * breadth;
}
double calculateVolume() {
return length * breadth * height;
}
};
int main() {
// create object of Room class
Room room1;
// assign values to data members
room1.length = 42.5;
room1.breadth = 30.8;
room1.height = 19.2;
// calculate and display the area and volume of the room
cout << "Area of Room = " << room1.calculateArea() << endl;
cout << "Volume of Room = " << room1.calculateVolume() << endl;
return 0;
}
출력
Area of Room = 1309 Volume of Room = 25132.8
이 프로그램에서는 Room
을 사용했습니다. 클래스 및 해당 개체 room1 방의 면적과 부피를 계산합니다.
main()
에서 , length 값을 할당했습니다. , 너비 , 및 높이 코드:
room1.length = 42.5;
room1.breadth = 30.8;
room1.height = 19.2;
그런 다음 calculateArea()
함수를 호출했습니다. 및 calculateVolume()
필요한 계산을 수행합니다.
public
키워드의 사용에 유의하십시오. 프로그램에서. 이는 회원이 공개되어 있으며 프로그램의 어디에서나 액세스할 수 있음을 의미합니다.
필요에 따라 private
을 사용하여 비공개 멤버를 만들 수도 있습니다. 예어. 클래스의 private 멤버는 클래스 내에서만 액세스할 수 있습니다. 예를 들어,
class Test {
private:
int a;
void function1() { }
public:
int b;
void function2() { }
}
여기서 a 및 function1()
비공개입니다. 따라서 클래스 외부에서 액세스할 수 없습니다.
반면에 b 및 function2()
프로그램의 모든 곳에서 액세스할 수 있습니다.
공개 및 비공개 키워드에 대해 자세히 알아보려면 C++ 클래스 액세스 수정자 자습서를 방문하세요.
<시간>
// Program to illustrate the working of
// public and private in C++ Class
#include <iostream>
using namespace std;
class Room {
private:
double length;
double breadth;
double height;
public:
// function to initialize private variables
void initData(double len, double brth, double hgt) {
length = len;
breadth = brth;
height = hgt;
}
double calculateArea() {
return length * breadth;
}
double calculateVolume() {
return length * breadth * height;
}
};
int main() {
// create object of Room class
Room room1;
// pass the values of private variables as arguments
room1.initData(42.5, 30.8, 19.2);
cout << "Area of Room = " << room1.calculateArea() << endl;
cout << "Volume of Room = " << room1.calculateVolume() << endl;
return 0;
}
출력
Area of Room = 1309 Volume of Room = 25132.8
위의 예는 클래스 변수가 이제 private이라는 점을 제외하고는 첫 번째 예와 거의 동일합니다.
변수는 이제 비공개이므로 main()
에서 직접 액세스할 수 없습니다. . 따라서 다음 코드를 사용하는 것은 유효하지 않습니다.
// invalid code
obj.length = 42.5;
obj.breadth = 30.8;
obj.height = 19.2;
대신 공개 함수 initData()
를 사용합니다. 함수 매개변수 double len
를 통해 개인 변수를 초기화하려면 , double brth
및 double hgt
.
개체 및 클래스에 대해 자세히 알아보려면 다음 항목을 방문하십시오.
C 언어
C 프로그래밍 언어란 무엇입니까? C는 Dennis Ritchie가 1972년 Bell Lab에서 개발한 중간 수준 프로그래밍 언어입니다. C 언어는 저수준 언어와 고급 언어의 기능을 결합합니다. 따라서 중급 언어로 간주됩니다. C는 펌웨어 및 휴대용 응용 프로그램을 개발할 수 있는 고급 클래식 유형 프로그래밍 언어입니다. C 언어는 시스템 소프트웨어 작성을 목적으로 개발되었습니다. 펌웨어 시스템 개발에 이상적인 언어입니다. C++ 프로그래밍 언어란 무엇입니까? C++는 C 프로그래밍 언어의 기능과 Simula67(첫 번째 객
이 장에서는 Java의 내부 클래스에 대해 설명합니다. 중첩 클래스 Java에서 메소드와 마찬가지로 클래스의 변수도 다른 클래스를 멤버로 가질 수 있습니다. 다른 클래스 내에 클래스를 작성하는 것은 Java에서 허용됩니다. 내부에 작성된 클래스를 중첩 클래스라고 합니다. , 내부 클래스를 보유하는 클래스를 외부 클래스라고 합니다. . 구문 다음은 중첩 클래스를 작성하는 구문입니다. 여기에서 Outer_Demo 클래스 외부 클래스이고 Inner_Demo 클래스입니다. 중첩 클래스입니다. class Outer_Demo {