C++ (1)

YangJiWon·2021년 11월 27일
0

C++

목록 보기
1/1

C++의 내용을 정리!

코딩표준

  1. 매개변수의 이름을 더 잘 짓자
  2. 읽기 전용 매개변수를 상수화 하자
bool TryDivide(Vector& result, const Vector& a, const Vector& b);

const Vector a;
const Vector b;
Vector result;

TryDivide(a, b, result); // compile error
TryDivide(result, a, b); // OK
  • 호출자가 TryDivide(a, b, c);이런 일을 할 수도 있음
  1. 읽기 전용 매개변수는 상수 참조로, 출력 결과용 매개변수는 포인터로
    TryDivide(&a, b, c);
  • 변수 a가 NULL이 될 수 있으나, 이건 말이 안되는 경우
  • 함수 내에 assert함수를 넣어 a가 NULL이 되는 경우를 잡자

string

  • std::string 클래스를 이용한 문자열을 길이가 증가할 수 있음
string firstName = "Jiwon";
string lastName = "Yang"
string fullName = "Jiwon Yang";

fullName = firstName;
fullName += " Yang";

fullName = firstName + " " + lastName
  • const char* c_str() : 해당 string이 가지고 있는 문자 배열의 시작 주소를 가리키는 포인터를 반환
  • string은 힙 메모리에 할당하는데 힙 메모리 할당은 느림
  • 메모리 단편화 문제가 있음
  • 내부 버퍼의 증가는 멀티 쓰레드 환경에서 안전하지 않을 수도
  • 그래서 여전히 sprintf와 함께 char[]를 매우 많이 사용

파일 I/O

파일 입출력 <fstream>

  • ifstream : 파일 입력
  • ofstream : 파일 출력
  • fstream : 파일 입력 및 출력

open()

  • 각 스트림마다 open()메서드가 있음
fin.open("HelloWorld.txt", ios_base:in | ios_base::binary);

close()

  • 각 스트림마다 close()메서드가 있음
fin.close();

is_open()

  • 파일이 열려 있는지 확인
if (fs.is_open()) 
profile
데이터데이터데이터!!

0개의 댓글