관리 메뉴

FU11M00N

[ C++ ] namespace 예제, 데이터 타입, C++ 출력 본문

Programming/C++

[ C++ ] namespace 예제, 데이터 타입, C++ 출력

호IT 2021. 3. 10. 13:29

- C++ 언어의 표준

 

1998년 미국 표준원인 ANSI 에서 C++ 언어에 대한 표준이 설정되었습니다.

 

 

- C언어를 설계한 주요 목적

 

  • C와의 호환성이 좋습니다.
  • 실행 시간의 효율성 저하를 최소화합니다.
  • 엄격한 타입체크합니다.
  • 객체지향 개념 도입 합니다.

 

 

- C언어에 추가한 기능

 

  • 함수 중복 : 매개 변수의 개수나 타입이 다른 동일한 이름의 함수들 선언 합니다.
  • 디폴트 매개변수 : 매개 변수에 디폴트 값이 전달되도록 함수 선언 합니다.
  • 참조와 참조 변수합니다.
  • 참조에 의한 호출합니다.
  • new/delete 연산자합니다.
  • 연산자 재정의 : 기존 C++ 연산자에 대한 추가된 정의 합니다.
  • 제네릭 함수와 클래스 : 데이터 타입에 의존하지 않고 일반화시킨 함수나 클래스 작성 가능 합니다.

 

 

- C ++ 객체 지향 특성 - 캡슐화

 

데이터를 캡슐로 싸서 외부의 접근으로부터 보호하고 C++에서는 클래스로 캡슐을 표현합니다.

 

 

- C ++ 객체 지향 특성 - 다형성

 

- 다형성

 

: 하나의 기능이 경우에 따라 다르게 보이거나 다르게 작동하는 현상 함수뿐만 아니라 연산자도 오버로딩 가능합니다.

 

 

 

- C, C++ 호환성 특징

 

장점 : 기존에 개발된 C 프로그램 코드를 활용가능합니다.

 

단점 : 캡슐화의 원칙이 무너집니다.

 

즉 C++에서 전역변수와 전역 함수를 사용할 수 밖에 없고, 부작용이 발생할 수 있다.

 

 

 

 

- C++ 실행해보기

 

기존 C 코드

#include <stdio.h>

int main() {
	printf("Hello World!");
	return 0;
}

 

 

#include <iostream>

int x = 10; // 전역변수

int main() { // 운영체제에서 가장 먼저 호출하는 함수
	std::cout << "Hello World!"; //printf("Hello World!");
	return 0;
}

//표준화 되기 전에는 void main(){} 으로 사용하기도 했었지만, 지금은 표준화

 

#include <iostream>

int x = 10; // 전역변수

int main() { // 운영체제에서 가장 먼저 호출하는 함수
    std::cout << "Hello World!" << std::endl;
    std::cout << "hihi";
    return 0;
}

 

줄바꿈은 위와 같이 표현할 수 있습니다. 

 

 

std:: 말고 아래와 같은 방법도 가능합니다. 

#include<iostream>
using namespace std; // std: cout, endl, cin 등등

int main() { // 운영체제에서 가장 먼저 호출하는 함수
    cout << "Hello World!" << endl;
    cout << "hihi";
    return 0;
}

 

 

 

- namespace 만들기

 

 

프로젝트 규모가 커지고, 여러 사람이 같은 프로젝트를 개발하다 보면,

함수 이름이나 변수이름이 충돌이 발생할 수 있습니다.

 

따라서 이름 충돌을 해결하기 위해 namespace 키워드를 이용합니다.

 

std 는 C++ 표준에서 정의한 이름 공간 중 하나이고,

 

std:: 을 생략하고 싶다면, using 지시어를 사용하면 됩니다.

 

 

 

#include<iostream>
using namespace std; // std: cout, endl, cin 등등
namespace kim {
    int a;
    void show() {}
}
int main() { // 운영체제에서 가장 먼저 호출하는 함수
    cout << "Hello World!" << endl;
    cout << "hihi";

    kim::a = 100;
    cout << kim::a << endl;

    return 0;
}

 

- C++ 데이터 타입

 

  • bool 
  • char
  • short
  • int
  • long
  • float
  • double

 

Comments