상세 컨텐츠

본문 제목

C++ 기초

Study/C++

by Ha학생 2023. 9. 4. 16:32

본문

안녕하세요. 하학생입니다. 요즘 ros에 관심이 많아졌습니다. ros2에 c++ 이 쓰인다는 것을 알아서 c++에 대해 공부를 진행했습니다. 많이 부족하지만 잘 봐주세요!


C++이란?

c++는 다목적 프로그래밍 언어로, 다양한 응요프로그래밍을 개발하는 데 사용됩니다. C언어의 확장으로 시작하여 C의 강력한 기능을 포함하고 객체 지향 프로그래밍을 추가한 것입니다. 

 

C++ 특징

  1. 객체 지향 프로그래밍

 

        객체 지향 프로그래밍을 지원합니다. 클래스와 객체를 사용하여 데이터와 관련된 함수를 캡슐화하고, 코드를 모듈화         하여 유지 보수와 확장을 쉽게 합니다.

 2. 강력한 표준 라이브러리 

 

        C++ 에는 풍부한 표준 라이브러리가 포함되어 있어 다양한 작업을 간단하게 처리 가능합니다.

 3. 메모리 관리

 

        C++은 개발자에게 메모리 관리의 책임을 부여합니다. 성능 최적화나 메모리 누수를 위해 강력한 도구가 될 수 있습니

        다.

 4. 다중 패러다임

       

       C++은 객체 지향, 절차 지향, 제네릭 프로그래밍등 다양한 프로그래밍 패러다임을 지원합니다. 이를 통해 다양한 유형

       의 프로그래밍을 작성할 수 있습니다.

 5. 크로스 플랫폼

 

      모바일 애플리케이션부터 임베디드 시스템까지 다양한 환경에서 사용됩니다.

 6. 성능

 

       C++은 하드웨어와 밀접한 접근이 가능하며, 최적화를 통해 뛰어난 성능을 제공합니다.

   


이름 공간(namespace)

 

이름 공간 이란 어떤 정의된 객체에 대해 어디 소속을 지정해 주는 것입니다.

std::cout

다음 코드는 iostream에 있는 std라는 이름 공간에 정의되어 있는 cout를 의미합니다. 만약 std::가 없을 때  컴파일러가 cout를 찾을 수 없습니다.

 

이름 공간을 정의하는 방법은 다음과 같습니다

 

namespace practice1 {
int one();
void two();
}

 

※만약 자기 자신이 포함되어 있는 이름공간에서는 굳이 이름 공간을 명시 안 해도 자유롭게 부를 수 있다.

 

#include "practice1.h"


int func() {
  practice1::one();
}

다음 방식으로 practice.h에 존재하는 one을 호출할 수 있습니다. 

코드를 사용할 때마다 practice1 계속 호출하면 상당히 귀찮기 때문에

 

#include "practice1.h"

using namespace header1;
int main() {
  one();  
  two(); 
}

다음 코드를 이용하여 practice라는 이름 공간에 들어있는 one이랑 two를 사용할 수 있습니다.

 

그러면 같은 파일에서 실행시킬 때 namespace의 이름을 정의해줘야 하나? 

답은 "아니다"입니다. 

 

#include <iostream>

namespace {

int OpenFile() {}

int onlyfile = 0;
}  // namespace

int main() {
  OpenFile();
   onlyfile  = 3;
}

다음 예제처럼 사용하면 같은 파일에서 언제든지 함수나 변수를 접근할 수 있습니다.

 


 C++의 문법

    C++의 문법은 C언어의 문법과 거이 완전하게 포함되어 있습니다. 

 

#include <iostream>

int main() {
    int int_mode;
    char char_mode;
    double double_mode;
    float float_mode;
    int array[10];
    int *arr_pointer = array;
    int *pointer_int = &int;
    
    return 0;
}

 변수 선언 같은 경우 C 언어와 동일하게 선언해 주시면 됩니다.

 

#include <iostream>

int main() {
	for (int i = 0; i <= 10; i++) {
		std::cout << i << std::endl;
	}
	return 0;
}

for문도 C언어와 동일하게 사용합니다. 결과는 다음과 같이 나옵니다. 

 

#include <iostream>

int main() {
	int count = 1;
	if (count == 0)
		std::cout << "Not 1" << std::endl;
	else if (count == 1)
		std::cout << "Count is 1" << std::endl;

	return 0;
}

 

if문도 C언어와 동일합니다. 결과는 다음과 같이 나옵니다. 

 

#include <iostream>

int main() {
	int count;

	std::cin >> count;
	if (count == 0)
		std::cout << "Not 1" << std::endl;
	else if (count == 1)
		std::cout << "Count is 1" << std::endl;

	return 0;
}

c언어에서 scanf와 같은 역할 을 해주는 코드는 std:cin>>라는 코드입니다. 다음을 이용하여 위 코드를 구현해 봤는데요

결과 값은 다음과 같이 나옵니다.

 

 

 

 

 

 


 

오늘은 C++의 정의, 특징 그리고 기본 문법에 대해 공부를 진행해 봤습니다, 다음 포스팅부터는 래퍼런스 등등 공부하는 것으로 하겠습니다. 봐주셔서 감사합니다.

 

 

'Study > C++' 카테고리의 다른 글

C++ 백준 10828번  (0) 2023.09.14
C++ 생성자 초기화 리스트, const,static변수 등등  (0) 2023.09.10
C++ 복사 생성자,소멸자  (0) 2023.09.10
C++ New,Delete, Class  (0) 2023.09.06
C++ 참조자  (0) 2023.09.05

관련글 더보기

댓글 영역