C++ #01 C와 C++ 비교

underlier12·2020년 1월 31일
3

C++

목록 보기
1/19

01. C와 C++ 비교

C와 C++ 차이점 및 특징

C++ 파일도 C와 동일하게 Visual Studio 상에서 손쉽게 만들 수 있다. 프로젝트를 생성한 뒤 소스파일에서 오른쪽 클릭 후 추가 - 새항목을 선택한 뒤 'main.cpp'와 같이 명명하여 추가하면 된다.

image.png

iostream

iostream 라이브러리는 C++ 표준 입출력 라이브러리이며 C의 stdio.h와 흡사하게 사용된다. 과거에는 iostream.h로 쓰였지만 최신 C++ 문법에서는 .h를 붙이지 않는다.

#include <iostream>

using namespace std;

int main(void) {
	cout << "Hello World" << endl;
	system("pause");
	return 0;
}

endl을 통해 줄바꿈을 실행한다.

기본 입출력

C에서는 printf(), scanf() 함수에서 형식 지정자를 적어야 했으나 C++에서는 형식 지정자를 넣어주지 않아도 변수를 타입에 맞게 적절히 입출력 해준다.

C++ 기본 입출력 라이브러리에서는 연산자 >><<를 제공한다. 이를 활용해 모든 기본 자료형을 입출력 할 수 있다. 특히 입력을 받는 연산자 >>는 공백 문자(Space, Enter, Tab)을 기준으로 입력받는다.

#include <iostream>
#include <string>

int main(void) {
	std::string input;
	std::cin >> input;
	std::cout << input << std::endl;
	system("pause");
	return 0;
}

C++의 Namespace

네임스페이스는 특정 영역에 이름을 설정할 수 있도록 하는 문법이다. 서로 다른 개발자가 공동으로 프로젝트를 진행할 때 각자 개발한 모듈을 하나로 합칠 수 있도록 해준다.

#include <iostream>

namespace A {
	void function() {
		std::cout << "A Namespace" << std::endl;
	}
}

namespace B {
	void function() {
		std::cout << "B Namespace" << std::endl;
	}
}

int main(void) {
	A::function();
	B::function();
	system("pause");
	return 0;
}

using 키워드를 사용하여 표준 라이브러리(std)를 모두 사용하도록 처리할 수 있다.

#include <iostream>

using namespace std;

int main(void) {
	string input;
	cin >> input;
	cout << input << endl;
	system("pause");
	return 0;
}

C++의 문자열 자료형

C++은 표준 문자열 자료형을 제공하며 string 헤더 파일에 정의되어 있다.

언어별 문자열형태
Cchar arr[SIZE];
C++string s;

C++ 문자열 자료형 사용

#include <iostream>
#include <string>

using namespace std;

int main(void) {
	string input;
	cin >> input;
	for (int i = 0;i < input.size();i++) {
		cout << input << endl;
	}
	system("pause");
	return 0;
}

C++에서 공백을 포함해 한 줄을 모두 문자열 형태로 입력 받고자 한다면 getline() 함수를 사용한다.

#include <iostream>
#include <string>

using namespace std;

int main(void) {
	string input;
	getline(cin, input);
	for (int i = 0;i < input.size();i++) {
		cout << input[i] << '\n';
	}
	system("pause");
	return 0;
}

string의 자료형 변환

C++의 string은 다른 자료형으로 변환이 간편하다.

#include <iostream>
#include <string>

using namespace std;

int main(void) {
	int i = 123;
	string s = to_string(i);
	cout << "정수 -> 문자열 : " << s << endl;

	s = "456";
	i = stoi(s);
	cout << "문자열 -> 정수 : " << i << endl;
	system("pause");
	return 0;
}

C++의 동적 할당

#include <iostream>
#define SIZE 100

using namespace std;

int* arr;

int main(void) {
	arr = new int[SIZE]; // 동적 할당
	for (int i = 0;i < SIZE;i++) {
		arr[i] = i;
	}

	for (int i = 0;i < SIZE;i++) {
		cout << arr[i] << ' ';
	}
	delete arr; // 할당 해제
	system("pause");
	return 0;
}

정리

  1. C++은 객체 지향 패러다임을 따르는 언어이고 C는 절차적 프로그래밍 언어이다.
  2. C++은 객체 중심의 언어이며 C는 함수 기반의 언어이다.
  3. C++은 C언어의 구조체(Struct) 대신 클래스(Class)를 사용한다.
  4. C++은 공식적으로 예외 처리(Exception Handling) 기술을 지원한다.
profile
logos and alogos

0개의 댓글