Using
동일한 이름을 가진 변수,함수가 생길 수 있다.
클래스,namespace가 다르게 해결할 수 있다.

모호성(Ambiguity)
using namespace로 여러 namespace를 불러오면 똑같은 변수가 있을 수 있다.
그러면 namespace를 생략하고 사용할 수 없다.
namespace명::변수명 으로 사용하던지 아니면 {}영역을 구분줘서 사용해야한다.

using namespace를 선언하면 취소할 수 없다.
최대한 분리하여 사용하자.

#include <iostream>

namespace a
{
	int a1(2);
}
namespace b
{
	int a1(3);
}

int main()
{
	//std::를 생략할 수 있다.
	using namespace std;
	//아래처럼 하나만 불러와 사용할 수 있다.
	//using std::cout;

	//cout << "hello" << endl;

	//아래 두namespace에 똑같은 이름의 변수가 있다.
	//사용할려면 영역을 분리해서 사용하자
	{
		using namespace a;
		cout << a1 << endl;
	}
	{
		using namespace b;
		cout << a1 << endl;
	}
	

	return 0;
}

auto 키워드

큰프로그램을 작성하면 많은 변수를 작성하게 된다.
변수의 자료형을 프로그래머가 매번 정하면 효율이 떨어지게된다.

auto는 형추론을 통해 자동으로 자료형을 정해준다.
auto는 형추론을 해야하기해 자동화를 해주어야한다.

함수 리턴타입도 auto로 설정할 수 있다.
함수 리턴 값도 변수로 저장할때 auto로 설정가능하다.
파라미터타입은 auto로 설정할 수 없다.

파라미터타입 설정은 template로 사용할 수 있다.

#include <iostream>

//리턴타입을 auto로 설정했다.
auto add(int a, int b)
{
	return a + b;
}

//-> double방식으로 설정할 수 있다.
auto add(double a, double b) -> double
{
	return a + b;
}

int main()
{
	using namespace std;

	//int a = 123;
	//int형
	auto a = 123;
	//double형
	auto b = 23.4;

	//함수 리턴 값도 auto로 설정가능하다.
	auto result = add(1, 3);
	
	return 0;
}



입출력을 사용하기 위해선 iostream을 include해줘야한다.

출력은 std::cout을 사용한다.
- 줄맞춤을 할땐 "\t"를 사용한다.
- \뒤에 문자는 어떠한 기능을 수행한다.(ex:줄맞춤,줄바꿈)
- 특이점 : \a는 소리를 출력해준다.

입력받을때는 std::cin을 사용한다.
출력과 반대로 입력연산자 >>를 사용한다.

std::을 사용하기 귀찮다면 using namespace std;를 사용한다.

 

#include <iostream>
#include <cstdio>

int main()
{
	//using namespace std;
	//int main(){} 함수안에서 std::를 사용하지 않아도 된다.
	using namespace std;
	int x = 1024;

	//std란 namespace안에 cout함수를 사용한다.
	std::cout << "Test" << std::endl;
	std::cout << "x is " << x << std::endl;
    //\t를 사용하면 줄맞춤이 된다.
	std::cout << "tab" << "\t" << "test" << std::endl;
	std::cout << "tab2" << "\t" << "test" << std::endl;

	//using namespace std;를 해놨기에 std::는 생략되어도 된다.
	//입력받는방법 cin >> 연산자를 사용한다.
	cin >> x;
	cout << "x change " << x << endl;

	return 0;
}

'개발 소발 > 개발 C++(기초)' 카테고리의 다른 글

c++ 키워드,식별자란?  (0) 2019.06.26
c++ 함수란?  (0) 2019.06.25
c++ 객체,변수,초기화,대입이란?  (0) 2019.06.25
C언어 파일입출력  (0) 2019.01.18
C언어 코딩 함수포인터,구조체  (0) 2019.01.08

+ Recent posts