개요
오늘부터 자료구조 수업에서 C++ 문법을 가르친다고 합니다.
C++을 해본적은 없지만 문법 생긴게 참 기괴한데 오늘 한 교시 동안 만들고 해설했던 코드 조각은 이랬습니다.
#include <iostream>
using namespace std;
int main() {
char arr[100];
cout << "What's your name" << endl;
cin >> arr;
cout << "Hi" << " " << arr;
}
입출력을 쉬프트 연산자 같은거로 처리한다는 것부터 광기로 가득찬 언어 아닙니까?
심지어 using을 안쓰면
#include <iostream>
int main() {
char arr[100];
std::cout << "What's your name\n" << std::endl;
std::cin >> arr;
std::cout << "Hi" << " " << arr;
}
일일히 콜론 2개씩 붙여줘야 합니다..
#include 문장을 없애면 어떤 오류가 발생하는가?
그래서 실제로 없애보았습니다.
#include는 언어 자체에서 보유중인 기능을 사용하기 위해서 라이브러리를 받아오는 것이라고 합니다.
C#으로 친다면 using이랑 일맥상통 하는 것 같습니다.
using iostream.std;
같은 느낌...
endl의 의미?
cout << "What's your name" << endl;
이런식으로 사용된 endl은 개행문자 입니다.
문자는 아니지만 아무튼 '\n' 과 똑같이 작동하고 '\n'보다 속도가 느립니다.
그 이유는 endl은 버퍼를 비워주는 작업까지 해주기 때문입니다.
자신의 이름과 소속을 출력하는 프로그램을 작성하라
솔직히 출력만 하면 되는게 너무 날먹이라고 생각돼서 입력 받은 걸 출력해주는 걸로 만들었습니다.
#include <iostream>
#include <string>
using namespace std;
int main() {
string name;
int lass;
cout << "당신의 이름은? : ";
cin >> name;
cout << "당신의 소속은? : ";
cin >> lass;
cout << "당신의 이름은 " << name << "이고 당신은 " << lass << "반 입니다.";
}
몰랐는데 C++에선 string 자료형을 사용하기 위해선 또 string을 include 해야하는 이해할 수 없는 구조를 사용합니다.
아무튼 class 는 예약어라서 class가 아니라 lass가 돼버린 int 변수에 대해 애도를 표합니다.
이름 공간(namespace)는 무엇 때문에 필요한가?
위에서 말했듯 using namespace를 사용하지 않는다면 일일히 :: 를 붙여줘야 하는 수고로움이 발생합니다.
회사 같은 곳에서 큰 프로젝트를 하는 것을 대비해서 using을 사용하지 않는 습관을 들이는 것도 필요하다고 생각하지만 솔직히 귀찮으시잖아
소규모로 할때는 편한걸 기용합시다.
마치는 말
C++ 참 이상하네요.
그래도 매력적인 언어 같긴 합니다.
좋으니까 사람들이 많이 쓰는거겠죠?
근데 전 C++ 재능이 없는 것 같아요..
Hello World! 출력 하는 문제를 4번 시도한 후 드디어 맞춘걸 보면 재능이 없는게 확실합니다.
심지어 한번은 C++로 풀어놓고 C#으로 제출했네..
'개발 > C++' 카테고리의 다른 글
자료구조 | C++ | 클래스 (1) | 2024.04.05 |
---|---|
자료구조/게임 프로그래밍 | C++ | 함수, 포인터 (1) | 2024.03.28 |
게임 프로그래밍 | C++ | 랜덤 (2) | 2024.03.22 |
자료구조 | C++ | 문자열 (3) | 2024.03.17 |
자료구조 | C++ | 기초사항 (3) | 2024.03.06 |