Notice
Recent Posts
Recent Comments
Link
| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | 4 | 5 | 6 | |
| 7 | 8 | 9 | 10 | 11 | 12 | 13 |
| 14 | 15 | 16 | 17 | 18 | 19 | 20 |
| 21 | 22 | 23 | 24 | 25 | 26 | 27 |
| 28 | 29 | 30 |
Tags
- C
- 깃허브
- 로보틱스
- fsm
- git
- c++
- 역기구학
- 모니터링시스템
- Ik
- 디지털트윈
- robotics
- 로봇공학
- 산업자동화
- c프로그래밍
- pointer
- Histogram
- mqtt
- intensity
- IoT
- 자료구조
- cprogramming
- github
- 스마트팩토리
- 컴퓨터비전
- makefile
- datastructure
Archives
- Today
- Total
yebeen.kim
[자료구조] Introduction to C++ 본문
C++ 언어의 특징
- 객체지향적 프로그래밍 언어
- C언어에 class를 더한 언어 ( C언어의 확장판 )
- function library가 많다
- 확장자명은 .cpp
C vs C++
#include <iostream>
using namespace std;
int i = 0; // C style
int i(0); // C++ style
bool fount(true);
cout << i << endl;
- c언어의 문법을 사용해도 okay
- namespace를 사용
- bool 변수 사용 가능 (true or false)
- 출력은 cout / 입력은 cin
- 컴파일러 커맨드 : C 는 gcc / C++ 는 g++
namespace
- 쓰는 이유 : 서로다른 namespace 에서 변수이름을 같은것을 사용하고 싶을때
- 예시코드
#include <iostream>
namespace Space_A{
int num = 20;
}
namespace Space_B{
int num = 30;
}
using namespace std;
int main(){
int num = 10;
cout << "main : " << num << endl; // 10
cout << "A : " << Space_A::num << endl; // 20
cout << "B : " << Space_B::num << endl; // 30
return 0;
}
- namespace 를 사용하면 같은변수명을 사용할 수 있다
Reference variable ( alias ) vs Pointer
| Pointer | Reference | |
| 문법 | int* ptr; | int& ref = num; |
| 선언 | 초기화 없이 선언될 수 있음 | 반드시 가리키는 변수와 함께 선언되어야함 |
| 할당 | new 와 delete 연산자를 사용하여 메모리를 할당해야함 |
한번 선언한 후 다른 객체를 가리키지않는다 가리키고 있는 변수의 별칭으로 사용된다 |
| NULL | nullptr로 설정할 수 있음 | nullptr로 설정할 수 없음 항상 유효한 변수를 가리키고 있어야함 |
| Dereferencing (간접 참조) |
간접 참조 연산자 * 를 사용해야함 | 따로 기호를 쓰지않음 자동으로 간접 참조가 됨 |
int n = 100, m = 20;
int &num1 = n;
int &num2 = num1;
num1 = m; //n과 m은 같음
- swap 함수 예제코드 ( 두 변수의 숫자를 바꾸는 함수 )
C++ (Reference)
void num_swap(int &, int &);
int main(){
const int size(3);
int arr[size] = {0, 1, 2};
num_swap(arr[0], arr[1]);
}
void num_swap(int &num1, int &num2){
int temp = num1;
num1 = num2;
num2 = temp;
}
C (Pointer)
void swap(int a, int b);
int main(){
int x = 10;
int y = 20;
swap(&x, &y); //x와 y의 주소를 swap함수로 전달한다
}
void swap(int *a, int *b){
int temp = *a;
*a = *b;
*b = temp;
}