C | C++ |
#include <stdio.h> | #include <cstdio> |
#include <stdlib.h> | #include <cstdlib> |
#include <string.h> | #include <cstring> |
기타 등등...
using namespace std; // std 네임스페이스를 생략하고 사용가능
using std::endl; // endl만 std를 생략하고 사용가능
namespace A
{
void testMethod()
{
std::cout << "A.testMethod called" << std::endl;
}
}
namespace B
{
void testMethod()
{
std::cout << "B.testMethod called" << std::endl;
}
}
void main(void)
{
A::testMethod();
B::testMethod();
/* output
A.testMethod called
B.testMethod called
*/
}
- std::cout, std::cin, std::endl
#include <iostream> // 필요함
void main(void)
{
std::cout << "출력하는 함수" << 0 << 0.4 << std::endl;
// std::endl은 개행, 숫자나 실수도 출력가능
int a;
char * testArr[5] = {0, };
std::cin >> a; // & 필요없음
std::cin >> testArr // 가능
}
void main(void)
{
int num = 4;
int& refNum = num; // refNum은 num과 같이 취급됨, 포인터도 아니다.
addOne(num); // call-by-value. num = 4로 변함
addOne(refNum); // call-by-reference. num = 5로 변함
}
void overloadMethod();
void overloadMethod(int a);
void overloadMethod(int b, int c); // 오버로드된 함수들
void testMethod(int a, int b, int c = 5) // c는 디폴트 파라미터
void main(void)
{
testMethod(1,2,3); // 가능
testMethod(1,2); // 이것도 가능
}
void testMethod(int a, int b, int c) // 정의부에는 디폴트 파라미터 금지
{
// ....
}
- 동적 할당 연산자 new, delete, delete[]
void main(void)
{
int * allocArray = new int[5];
std::string * allocString = new string();
// new로 동적할당
delete allocString; // 메모리 해제
delete[] allocArray; // 배열 메모리를 해제할 때 사용
}
class TestClass // 클래스
{
};
void main(void)
{
TestClass inst = TestClass(); // 인스턴스
TestClass * pInst = new TestClass(); // 동적 할당 인스턴스
delete pInst;
}
class TestClass
{
// 필드(멤버)나 메서드를 채워넣기
}; // 세미콜론 삽입에 주의
class TestClass
{
void testMethod(int para1, int para2); // 프로토 타입만 정의
};
// 외부에서 testMethod 메서드를 정의함
void TestClass::testMethod(int para1, int para2)
{
std::cout << para1 << para2 << std::endl;
}
auto typeArray = new int[5];
// typeArray는 자동으로 int *로 설정됨
TestClass testInst = TestClass();
auto& realNum = testInst;
// realNum은 TestClass&로 자동 설정됨
- (C++11) ranged-based for loop
int testArray[5] = { 1, 2, 3, 4, 5 };
for (int value : testArray)
{
// value는 순서대로 1, 2, 3, 4, 5가 대입됨
}
for (int& refValue : testArray)
{
// 참조형으로도 가능
}
for ((auto 혹은 auto&) value : something)
{
// 뭔가를 한다.
}
#include <array> // 필요함
void main(void)
{
std::array<type, size> cppArray = { .... };
// cppArray 아래에 있는 다양한 메서드 이용 가능
}