std::cout
C++연산자
new : 할당 메모리 추가
delete : 할당 메모리 삭제
→ 위의 2 연산자를 제외하고 C의 연산자와 동일하다
C++의 입출력
>> 연산자: a에 값을 넣겠다
cin >> a -> 화살표의 방향으로 생각하면 쉬움
<< 연산자: b의 값을 빼겠다
cout >> b <- 화살표의 방향으로 생각하면 쉬움
C와 C++의 중요한 차이점
연산자 다중화(Operator Overloading)가 허용된다.
위의 코드는 문자열 타입을 이용하여 C++에서 연산자 다중화를 구현한 간단한 예시입니다. 코드에서는 MyString 클래스를 정의하고, 이 클래스 내부에 + 연산자 다중화 함수를 정의합니다.연산자 다중화 함수는 MyString 클래스의 두 객체를 이어붙인 결과를 새로운 MyString 객체로 반환하는 함수입니다. 이를 위해, 함수 내부에서는 string 클래스의 + 연산자를 이용하여 두 문자열을 이어붙인 후, MyString 객체로 다시 반환합니다.또한, 코드에서는 << 연산자 다중화 함수를 전역에 정의합니다. 이 함수는 MyString 객체를 출력할 때 문자열을 출력하는 역할을 합니다. 이를 위해, 함수 내부에서는 MyString 객체 내부에 저장된 문자열을 출력하도록 구현합니다. 마지막으로, main 함수에서는 MyString 클래스를 이용하여 두 개의 문자열을 이어붙이고, 이를 출력합니다. 이때, << 연산자를 이용하여 MyString 객체를 출력합니다.
const int Max = 500;
enum semester{SUMMER, FALL, SPRING}
#include <iostream>
using namespace std;
int main() {
cout << "Hello, world!" << endl;
return 0;
}
💡 using namespace std;
→ 이 부분에 정의된 std에 cout에 관한 정의가 포함되어있다
만약 std;를 설정해두지 않은 경우 코드를 작성할 때에 std: 를 모든 코드의 앞에 작성해야하는 불편함이 있다
cout
cin
정규함수
정규 함수는 다른 함수나 클래스 내부에 정의되지 않은 일반적인 함수이다
addNumbers() 함수는 두 개의 정수 매개 변수를 받아들이고, 이들을 더한 값을 반환하는 정규함수이다
멤버함수
특정 클래스와 연관된 함수이다
C++에서 멤버 함수는 클래스 내에 선언되어 해당 클래스의 인스턴스에서 호출될 수 있는 함수이다.
멤버 함수는 일반적으로 클래스의 정의 내부에 선언되며, 클래스의 멤버 변수에 대한 접근을 위해 this 키워드를 사용합니다. this 키워드는 멤버 함수가 호출된 객체의 포인터를 나타냅니다. 이를 통해 멤버 함수는 객체의 데이터 멤버에 접근할 수 있습니다.
함수의 구성
void swap(const int %a, const int&b){
int temp = a;
a = b;
b = temp;
}
배열은 참조로 전달한다.
값(value)에 의한 전달
참조(reference)에 의한 전달
**#include <iostream>
using namespace std;
// int형 매개변수 하나를 받는 함수
void print(int n) {
cout << "int: " << n << endl;
}
// double형 매개변수 하나를 받는 함수
void print(double d) {
cout << "double: " << d << endl;
}
// 문자열을 받는 함수
void print(string s) {
cout << "string: " << s << endl;
}
int main() {
print(10);
print(3.14);
print("Hello World!");
return 0;
}**
→print 함수를 세 번 다중화하여, 각각 int형, double형, string형 매개변수를 받을 수 있다.인라인 함수
장점
단점
예시
**int x = 10, y = 20;
int z = x + y;**
**int x = 10, y = 20;
int z = add(x, y);**
**#include <iostream>
using namespace std;
// 인라인 함수 선언
inline int add(int a, int b) {
return a + b;
}
int main() {
int x = 10, y = 20;
cout << add(x, y) << endl; // 함수 호출 대신 코드가 그 자리에 삽입됨
return 0;
}**
→ 값을 추가적으로 계산하는 과정이 생략되고 위에서 정의한 inline 함수에 의해 계산된 값을 가져옴**// new 연산자의 사용 형태
포인터_변수 = new 자료형;**
**// delete 연산자의 사용 형태
delete 포인터_변수;**
new 연산자는 동적으로 메모리를 할당하고, 해당 메모리의 주소를 반환한다.
즉, 메모리 공간을 동적으로 할당할 때 사용하는 연산자입니다.
원하는 타입의 객체를 생성하고 포인터를 반환한다.
**// int형 변수를 동적으로 할당하는 코드
int* p = new int;**
delete 연산자는 동적으로 할당된 메모리를 해제하는 연산자이다.
**// int형 변수를 해제하는 코드
delete p;**
**try {
// 예외 발생 가능성이 있는 코드
} catch (예외 타입1 예외_객체1) {
// 예외 타입1이 발생한 경우 처리할 코드
} catch (예외 타입2 예외_객체2) {
// 예외 타입2이 발생한 경우 처리할 코드
} catch (...) {
// 이외의 예외가 발생한 경우 처리할 코드
}**