C++ study..

김혜원·2023년 1월 20일
0

c++study

목록 보기
1/11
post-thumbnail

1.C++ v.s. C

C++ : 객체 지향 프로그래밍 언어
C : 절차 지향 프로그래밍 언어. 순서대로 코드를 진행!

객체 란?

C++에는 class가 추가됐다!!
class 역시 자료형의 하나. class형식을 가지고 object가 선언된다.

  • c++에서는 c에서 가능했던 거의 모든 구문이 사용 가능하다.

추가된 구문?

변수의 생성, 초기화를 괄호를 사용해서!

int a = 5;
int a(5);
int a = 3, b=6;
int a(3),b(6);

bool type 변수 사용할 수 있다!

typecasting(형변환) 방법 한 가지 추가!

#include <stdio.h>
int main()
{
	double f = 5.5;
	int n = static_cast<int>(f);

	printf("%f, %d", f, n);
	return 0;
}

C++에서는 확장자(h)가 없는 header file들을 주로 사용하게 된다!

  • iostream, string ...

2.Reference

C의 pointer(다른 변수, 메모리의 주소값 참조하거나 넘겨준다) 와 비슷한 도구!
reference는 주소값을 가진다

#include <cstdio>
int main()
{
	int a = 5;
	int &r = a;

	printf("%d %d\n", a, r);
	printf("%p %p\n", &a, &r);

	return 0;
}

reference 변수 선언 : 자료형 &변수명 = 변수
반드시 처음에 초기화해야 한다. 그 이후 자신이 가리키는 변수를 바꿀 수 없다.

어떤 변수에 새로운 이름을 부여한다 고 생각할 수 있다.

2.1 Reference & Function

#include <cstdio>
void swap(int &, int &);
int main()
{
	int x, y;
	x = 3;
	y = 5;
	swap(x, y);
	printf("%d %d\n", x, y);

	return 0;
}

void swap(int &x, int &y)
{
	int tmp;
	tmp = x;
	x = y;
	y = tmp;
}
referenc(기호 &)는 함수의 선언, 정의에서만 쓰고 그 외에서는 기존 변수 다루듯 쓸 수 있다.

3.Namespace & Using

Namespace

namepsace라는 keyword사용해 만든다.

#include <cstdio>

namespace ns
{
	int n = 5;
}
int main()
{
	int n = 5;
	ns::n = 3;
	printf("%d %d\n", n,ns::n);
	return 0;
}

namespace이름::값 으로 쓴다!

Using

#include <cstdio>

namespace ns
{
	int n = 5;
	double f = 3.3;
	char c = 'C';
}
int main()
{
	using namespace ns;
	printf("%d %f %c\n", n, f, c);
	return 0;
}

using namespace 이름 을 사용해 ns에 있는 모든 것을 ' :: ' 없이 사용가능!

directive라고 한다.

4.Std, Cin, Cout, Endl

C++에서 새로 지원하는 입출력을 사용하려면 iostream headere file을 불러들인다.
iostream header file 안에 std라는 namespace가 있다!

#include <iostream>
using namespace std;
int main()
{
	int n;
	cout << "정수 입력:";
	cin >> n;
	cout << "입력값:" << n << "!" << endl;

	return 0;
}
  • C와의 가장 큰 차이는 형식지정자(%d, %f, ..)가 필요 없다는 점!
    • cout과 <<로 출력
    • cin과 >>로 입력 받기
    • 여러가지 자료형 결합된 출력 시 자료형 달라질 때마다 << 한번 더 써 구분
    • endl은 줄바꿈

string 입출력

#include <iostream>
using namespace std;
int main()
{
	string str1, str2, str3;

	cout << "문자열 2개 입력:";
	cin >> str1 >> str2;
	str3 = str1 + str2;
	cout << str3 << endl;

	return 0;
}

getline(), length(), at()

get(), peek(), putback(), ignore()

0개의 댓글