728x90

반도체/C++ 42

C#과 C++의 객체 지향 개념 차이

1. 클래스와 구조체C++: C++에서는 클래스와 구조체가 있으며, 둘 다 사용자 정의 데이터 타입을 정의할 수 있습니다. 기본적으로 구조체의 멤버는 public이고, 클래스의 멤버는 private입니다. 또한, C++에서는 구조체도 메서드와 접근 제어를 가질 수 있습니다.C#: C#에서는 클래스와 구조체가 있지만, 구조체는 값 타입(value type)으로, 클래스는 참조 타입(reference type)입니다. 구조체는 주로 간단한 데이터 구조에 사용되며, 메서드와 속성을 가질 수 있지만, 상속은 지원하지 않습니다.2. 접근 제어자C++: C++에서는 public, private, protected 접근 제어자를 사용하여 멤버의 접근 수준을 지정합니다. 기본 접근 수준은 클래스에서는 private, ..

반도체/C++ 2024.08.01

20.C++ 템플릿과 함수 오버로딩의 차이

1. 정의템플릿: 템플릿은 함수나 클래스를 정의할 때 데이터 타입을 일반화하여 여러 타입에 대해 동일한 로직을 적용할 수 있게 해줍니다. 템플릿은 컴파일 시간에 인스턴스화되어 특정 타입에 맞는 코드로 변환됩니다.함수 오버로딩: 함수 오버로딩은 같은 이름의 함수를 여러 개 정의하되, 매개변수의 타입이나 개수를 다르게 하여 서로 다른 기능을 수행할 수 있게 합니다. 즉, 함수의 이름은 같지만 매개변수의 목록이 다릅니다. 템플릿 예제:template T add(T a, T b) { return a + b;}함수 오버로딩 예제:int add(int a, int b) { return a + b;}double add(double a, double b) { return a + b;}3. 타입 결정 시..

반도체/C++ 2024.07.31

19. C++의 객체지향 4가지

C++의 객체 지향 프로그래밍(Object-Oriented Programming, OOP)은 소프트웨어 개발에서 객체를 중심으로 설계하는 프로그래밍 패러다임. C++는 OOP의 4가지 주요 개념인 캡슐화, 상속, 다형성, 추상화를 지원  1. 캡슐화 (Encapsulation)설명: 객체의 상태(데이터)와 동작(메서드)을 하나의 단위로 묶어 외부로부터 보호하는 것입니다. 이를 통해 데이터에 대한 직접적인 접근을 제한하고, 객체의 내부 구현을 숨길 수 있습니다.예제:class Account {private: double balance; // private 멤버 변수public: // 생성자 Account(double initialBalance) : balance(initialBalance)..

반도체/C++ 2024.07.31

18. C++의 형변환 (2) 안정성

C++에서 안정성 있는 형변환은 프로그램의 안전성을 보장하며, 런타임 오류를 방지하는 형변환 방법을 의미합니다. 안정성 있는 형변환은 주로 static_cast, dynamic_cast, const_cast, 그리고 reinterpret_cast 중에서 특정한 상황에서 적절히 사용  1. static_cast설명: static_cast는 컴파일 타임에 타입의 안전성을 검사하는 형변환 연산자입니다. 기본 데이터 타입 간의 변환, 클래스 계층에서의 업캐스팅 및 다운캐스팅에 사용됩니다. 다만, 다운캐스팅의 경우 안전성을 보장하지 않으므로, 반드시 타입 관계가 확실할 때 사용class Base {};class Derived : public Base {};Base* basePtr = new Derived();De..

반도체/C++ 2024.07.29

18. C++의 형변환 (1)

18. C++의 형변환 C++에서 형변환(타입 캐스팅)은 한 데이터 타입을 다른 데이터 타입으로 변환하는 과정     1. 암시적 형변환 (Implicit Conversion)암시적 형변환은 C++ 컴파일러가 자동으로 수행하는 형변환입니다. 예를 들어, 정수형 변수를 실수형 변수에 할당할 때 자동으로 변환  2. 명시적 형변환 (Explicit Conversion)명시적 형변환은 프로그래머가 의도적으로 형변환을 수행하는 방법입니다. C++에서는 여러 가지 방법으로 명시적 형변환을 수행 2.1. C 스타일 캐스팅가장 기본적인 형변환 방법으로, (타입)을 사용하여 변환double doubleValue = 5.5;int intValue = (int)doubleValue; // double -> int로 변환2..

반도체/C++ 2024.07.29

17. C++의 템플릿

C++의 템플릿은 코드의 재사용성을 높이고, 다양한 데이터 타입에 대해 일반화된 함수를 작성할 수 있도록 하는 강력한 기능입니다.  템플릿을 사용하면 특정 데이터 타입에 의존하지 않고, 여러 타입에 대해 동일한 로직을 적용  주로 함수 템플릿과 클래스 템플릿 두 가지 유형  1. 함수 템플릿 (Function Templates)함수 템플릿은 다양한 데이터 타입에 대해 동일한 함수를 작성할 수 있게 해줍니다. 함수 템플릿을 정의할 때는 template 키워드를 사용합니다. #include using namespace std;// 함수 템플릿 정의template T add(T a, T b) { return a + b;}int main() { cout 위 예제에서 add 함수는 T라는 템플릿 매개변..

반도체/C++ 2024.07.29

16. 두 수의 합을 반환하는 함수

예제: 두 수의 합을 반환하는 함수#include using namespace std;// 두 수의 합을 반환하는 함수int add(int a, int b) { return a + b; // a와 b의 합을 반환}int main() { int num1 = 5; int num2 = 10; // add 함수를 호출하고 반환된 값을 sum 변수에 저장 int sum = add(num1, num2); // 결과 출력 cout 코드 설명int add(int a, int b):add라는 이름의 함수를 정의합니다. 이 함수는 두 개의 정수 a와 b를 매개변수로 받아서 그 합을 반환합니다.return a + b;:함수가 a와 b의 합을 계산하고 그 결과를 반환합니다. 이 반환값은 ..

반도체/C++ 2024.07.26

15.값을 반환하는 함수 VS 값을 반환하지 않는 함수

예제 2: 값을 반환하지 않는 함수#include using namespace std;// 두 수의 합을 출력하는 함수 (값을 반환하지 않음)void printSum(int a, int b) { int sum = a + b; // a와 b의 합을 계산 cout 예제 1: 값을 반환하는 함수#include using namespace std;// 두 수의 합을 반환하는 함수int add(int a, int b) { return a + b; // a와 b의 합을 반환}int main() { int num1 = 5; int num2 = 10; // add 함수를 호출하고 반환된 값을 sum 변수에 저장 int sum = add(num1, num2); // 결과 출력 ..

반도체/C++ 2024.07.26

14. C++과 C언어의 차이 (2)

1. 함수 오버로딩 (Function Overloading)C 언어: 함수 이름은 고유해야 하며, 동일한 이름의 함수를 여러 개 정의할 수 없습니다.C++: 함수 오버로딩이 지원되어 동일한 이름의 함수를 매개변수의 타입이나 개수에 따라 여러 개 정의할 수 있습니다.2. 기본 인수 (Default Arguments)C 언어: 기본 인수를 지원하지 않으므로, 모든 인수를 명시적으로 제공해야 합니다.C++: 기본 인수를 정의할 수 있어, 호출 시 일부 인수를 생략할 수 있습니다.3. 함수 템플릿 (Function Templates)C 언어: 함수 템플릿을 지원하지 않습니다.C++: 템플릿 기능을 통해, 다양한 데이터 타입에 대해 동일한 기능을 제공하는 함수를 정의할 수 있습니다.4. 네임스페이스 (Namesp..

반도체/C++ 2024.07.26

13. C++의 기본인수

기본 인수(또는 기본 매개변수)는 함수 정의 시 매개변수에 기본값을 지정하는 기능입니다. 이를 통해 함수 호출 시 해당 매개변수를 생략할 수 있으며, 생략된 경우 기본값이 사용됩니다.기본 인수의 특징정의 시 기본값 설정: 함수 정의에서 매개변수에 기본값을 지정할 수 있습니다.호출 시 선택적 사용: 함수를 호출할 때 기본값이 지정된 매개변수를 생략하면, 자동으로 기본값이 사용됩니다.가독성 향상: 기본 인수를 사용함으로써, 호출할 때 매개변수를 줄일 수 있어 코드를 더 간결하게 만들 수 있습니다.#include using namespace std;// 기본 인수를 사용하는 함수void printSum(int a, int b = 10) { cout 예제 설명printSum(int a, int b = 10..

반도체/C++ 2024.07.26
728x90