Programming/C & C++

[C++] c++ 시작하기 : cout, cin, namespace, 오버로딩

만나쓰 2020. 5. 18. 00:12

 

1. cout, cin : 입출력하기

 

#include <iostream>

int main() {
	std::cout << "Hello world!" << std::endl;

	//std = namespace : 
	//cout = console out
	// << = 연산자 오버로딩

	char name[10];
	std::cin >> name;
	std::cout << "당신의 이름은" << name << "입니다." << std::endl;
	//cin = consol input

	int age;
	std::cin >> name;
	std::cin >> age;
	//std::cin >> name >> age; 와 동일



	return 0;
}

 

 

#include <iostream> 은 헤더로 input output stream 입출력을 의미한다.

 

main함수에서 std 는 namespace로 아래에 추가 설명을 하겠다.

:: 은 범위 지정 연산자로 namespace를 가리킬때 사용하는 연산자이다.

cout은 console output으로 출력을 의미하고, cin은 console input으로 입력을 받게한다.

 

 

 

2. namespace과 using

 

#include <iostream>

namespace A {
	void Add() {
		printf("A의 Add() 호출\n");
	}
	void Minus() {
		printf("A의 Minus() 호출\n");
	}
}

//using namespace A;		//A의 namespace를 명시적으로 사용
using A::Add;


int main() {
	Add();
	A::Minus();

	return 0;
}

 

namespace를 A로 선언하고, using을 이용해서 A의 Add함수를 명시했다.

이러한 경우에는 main함수에서 Add()는 namespace를 지정할 필요가 없지만 Minus()는 using하지 않았으므로 namespace를 범위 지정 연산자와 함께 작성해야 된다.

 

+ 추가적으로 입출력 cin, cout을 작성할 때, "std::" 또한 "using namespace std;"를 이용하면 편리하다.

그럼 std::cout << "Hello World" << std::endl; 을 cout << "Hello World" << endl; 로 간단해진다.

 

 

 

3. 오버로딩 (Function Overloading)

 - 함수명이 같아야 한다.

 - 매개변수의 수가 다르거나, 아니면 매개변수의 자료형이 달라야 한다.

 - 반환형의 차이는 오버로딩에 영향을 미치지 않는다.

 

 

 

 

 

4. new와 delete