본문 바로가기
프로그래밍 공부/C++

C++ 1단원 복습!

by 조엘 2020. 3. 10.

안녕하세요. 파피몬입니다.

 

이 복습 내용은 최호성 선생님의 "이것이 C++이다"를 공부하고 작성하였습니다. 

아직 모르는 게 많은 학생이라 오개념이 있을 수 있습니다. 친절하게 댓글로 알려주시면 좋은 공부 될 것 같습니다!!

 

Chapter 1. C와는 다른 C++ 

 

1. C언어는 순서가 중요한, 규모가 작은 프로젝트에 적합한 절차지향 프로그래밍이고,

C++은 Class(C언어의 구조체와 함수를 합쳐놓은 느낌)를 연결하는 것이 중요한, 대규모 프로젝트에 적합한 객체지향 프로그래밍이다. 

 

 

2. C언어는 비용도 적게들고, 성능도 좋다. 하지만 유지/보수 측면에서는 C++이 더 우세하다. 

 

 

3. C언어는 사용자(개발자)가 사용방식을 하나하나 다 알아야합니다. 

반면 C++는 방식보다는 접근과 전달 자체에 더 집중합니다. 

//C언어... Hello World 세탁위해 직접 세탁기를 돌린다
//printf() 함수의 사용방법? 형식문자? 이스케이프 시퀀스? 보안문제?
printf("Hello World\n"); 

//C++... std::cout 세탁소에 "Hello World"와 std::endl을 넘겨준다
//"std에 속한 cout객체에 "Hello, World" 문자열과 endl 객체를 '넘겨(<<)' 문자열을 출력해라!"
std::cout<<"Hello World"<<std::endl;

 

 

4. 인스턴스객체의 형식을 갖는 변수! C++에서는 '변수' 보다는 '인스턴스'에 더 익숙해 질 것!

//nData는 int형식에 대한 '인스턴스'다
int nData;

 

 

5. std::cout, std::cin에서는 C언어의 형식 문자 (%d, &s)등이 필요없다!

std::cout ... 조립(<<)해서 붙여나가듯 출력 가능

std::cin ... C언어와 달리 string객체를 사용한다면 문자열의 최대 길이 고려할 필요X

 

 

6. auto는 초깃값의 형식에 맞춰 선언하는 인스턴스의 형식이 '자동'으로 결정된다!

void TestFunc( int , char* )
{ //머리 아팠던 함수 포인터 }

int main()
{	
	//auto로 void(*pfTest)(int,char*) = TestFunc 한방에 해결!
	auto pfTest(TestFunc);
}

 

 

7. 함수 malloc(), free()에서 연산자 new, delete로의 진화! 

기술의 발전에 따라 메모리를 할당할 때 없어서 할당 못해주는 시대는 지났다! 그래서 new등장!

메모리의 크기를 따로 정하지 않고, 자료의 '형식'에서 필요한 메모리 크기 catch!

using namespace std;

int main()
{
	//heap영역에서 4byte만큼 할당, pData에 그 주소값 입력해준다. 
	int *pData = new int;
    
    //heap영역에서 4byte만큼 할당, 거기에는 10이 입력되어있다. 
    //pNewData에 그 영역의 주소값 입력해준다. 
    int *pNewData = new int(10);
    
    *pData = 5;
    cout<<*pData<<endl;
    cout<<*pNewData<<endl;
    
    delete pData;
    delete pNewData;
}

--------------- 
5
10

배열을 동적 생성하고 삭제할 때는 반드시 배열형태를 통해 삭제한다!

int *arr = new int[5]
delete [] arr;

 

 

8. 참조자 형식은 변수에 또 다른 별명을 부여하는 것! 같은 주소에 두가지 이름이 주어지는 느낌!

어찌보면 변하지 않는 포인터와 유사하다고 할 수 있다!

//nData와 rData는 같은 값과 같은 주소를 공유한다
int nData(10);
int &rData = nData;

 

 

9. 범위 기반 for문을 사용하면 배열의 요소 갯수에 맞게 자동으로 loop 횟수 결정!

배열의 크기가 변경되거나, 실수를 범했을 때 번거로움을 줄여줄 수 있다!

int aList[5] = {1,2,3,4,5};

for(int i=0; i<5; i++)
	cout<<aList[i]<<' ';

//각 요소에 접근하고 싶다면 auto &n : aList 같이 참조자 형식으로 선언!
for(auto n : aList)
	cout<< n <<' ';

반응형

'프로그래밍 공부 > C++' 카테고리의 다른 글

C++ 4단원 복습! (2편)  (0) 2020.03.15
C++ 4단원 복습! (1편)  (0) 2020.03.14
C++ 3단원 복습! (2편)  (0) 2020.03.12
C++ 3단원 복습! (1편)  (0) 2020.03.12
C++ 2단원 복습!  (0) 2020.03.11
C++ 1단원 복습!  (0) 2020.03.10

댓글0