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;
}
'개발 소발 > 개발 C++(기초)' 카테고리의 다른 글
c++ 문자열,string (0) | 2019.07.08 |
---|---|
c++ 암시적형변환,명시적형변환 (0) | 2019.07.05 |
c++ 전역변수,정적변수,내부연결,외부연결 (0) | 2019.07.05 |
c++ 지역변수,범위,지속기간 (0) | 2019.07.05 |
c++ 비트단위연산자,비트플래그란? (0) | 2019.07.04 |