일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |
- 파이토치 강의 정리
- 영상처리
- 모두의 딥러닝 예제
- c언어
- 가우시안 필터링
- 김성훈 교수님 PyTorch
- object detection
- c++공부
- 파이토치
- tensorflow 예제
- 팀프로젝트
- 컴퓨터 비전
- c++
- pytorch zero to all
- 미디언 필터링
- MFC 프로그래밍
- 파이토치 김성훈 교수님 강의 정리
- Pytorch Lecture
- C언어 공부
- 딥러닝
- 딥러닝 공부
- pytorch
- 케라스 정리
- 딥러닝 스터디
- 해리스 코너 검출
- TensorFlow
- 골빈해커
- 모두의 딥러닝
- matlab 영상처리
- c언어 정리
- Today
- Total
ComputerVision Jack
[C++ 프로그래밍 Chapter1] 본문
C++ 프로그래밍 정리 note시작.
[Hello world 예제를 통한 C언어와 다른점]
#include <iostream>
int main(void) {
int num = 20;
std::cout << "Hello World!" << std::endl;
std::cout << ' ' << 3.14 << std::endl;
return 0;
}
헤더 파일 선언 #include <iostream>
C++ 입출력을 위한 헤더 파일 <iostream>
C++에서는 표준 헤더파일 선언에선 확장자를 생략하기로 한다.
printf를 대신하는 std::cout<<
printf() 함수 대신 std::cout<<을 통하여 출력을 한다.
특이한 점은 C언어와 다르게 서식 문자 상관없이 어떤 것이든 출력해 낼 수 있다.
std::endl은 개행을 의미한다.
scanf를 대신하는 std::cin>>
scanf() 함수 대신 std::cin>>을 이용하여 변수에 값을 대입한다.
int num;
std::cin >> num;
데이터 입력도 출력과 마찬가지로 별도의 포멧 지정이 필요 없다.
C++의 지역 변수 선언
C++의 모든 컴파일러는 지역변수의 선언 위치에 제한을 두지 않는다.
c언어와 다르게
for (int i = 0; i < 10; i ++)이 for문 안에서 가능하다.
배열 기반의 문자열 입출력
char name[100];
std::cin >> name;
문자열 입력이 가능하다. 역시 어떠한 포멧이던 다 들어간다.
[함수 오버로딩 Function Overloading]
함수 오버로딩 Function Overloading
함수 호출 시 전달되는 인자를 통해서 호출하고자 하는 함수의 구분이 가능하다.
매개 변수의 선언 형태가 다르다면 동일한 이름의 함수 정의를 허용한다.
void Func(int c) {
std::cout << "My Func(int c) called" << std::endl;
}
void Func(char c) {
std::cout << "My Func(char c) called" << std::endl;
}
[매개변수의 디폴트 값 Default Value]
C++함수에서는 '디폴트 값'을 설정할 수 있다. (매개 변수에)
int add(int num1 = 1, int num2 = 2){
return num1 + num2
}
매개변수에 값이 전달 되지 않으면 디폴트 값이 적용된다.
만약 매개변수 보다 적은 수의 인자 전달이 되면 인자는 왼쪽 부터 채워진다.
함수 원형을 별도로 선언한 경우 매개변수의 디폴트 값은 함수의 원형 선언에만 위치한다.
int add(int num1 = 1, int num2 = 2);
[인라인 inline 함수]
매크로 함수의 장점
일반적인 함수에 비해 실행 속도의 이점이 있다.
매크로 함수의 단점
정의 하기 어렵다. 복잡한 매크로함수 형태의 정의는 한계가 존재한다.
인라인 함수 정의
매크로 함수의 단점을 제거하고 장점을 물려 받은 인라인 함수.
매크로 함수는 전처리기에 의해 처리되지만 인라인 함수는 컴파일러에 의해 처리된다.
inline int Square(int x){
return x * x;
}
[이름 공간 namespace]
특정 영역에 이름을 붙여 주기 위한 문법적 요소
같은 함수이름에 하는 일이 다를 때 거의 사용하는 것 같다.
namespace func1{
void Simple(void){
std::cout<<"1번이 정의한 함수"<<std::endl;
}
}
namespace func2{
void Simple(void){
std::cout<<"2번이 정의한 함수"<<std::endl;
}
}
main에서 func1::Simple(); 이런식으로 사용함.
:: 범위 지정 연산자.
지역변수와 전역변수의 이름이 같을때 전역변수는 지역변수에 의해 가려진다.
따라서 이럴 때, 전역 변수에 접근하고 싶은 경우
::num += 1;
이름 공간은 중첩해서 사용할 수도 있다. 헤더파일을 이용하여 분리 할 수도 있다.
using namespace 이름공간 을 사용하여 이름 공간에 대한 명시를 해제 할 수도 있다.
'Programming Language > C++ Programming' 카테고리의 다른 글
[C++프로그래밍 Chapter6] (0) | 2020.01.23 |
---|---|
[C++프로그래밍 Chapter5] (2) | 2020.01.21 |
[C++ 프로그래밍 Chapter4] (0) | 2020.01.19 |
[c++ 프로그래밍 Chapter3] (0) | 2020.01.16 |
[C++ 프로그래밍 Chapter2] (0) | 2020.01.14 |