본문 바로가기

C++

(40)
C++ 함수포인터 함수포인터 함수의 주소를 저장하는 포인터 우리가 항상 사용해 왔던 함수도 사실 주소값이 해당 함수의 내용을 가르키고있는것이다. 즉 함수의 이름은 포인터이다. 1 2 3 4 5 void Function() { } void main() { cout
C++ 연산자 오버로딩 주의사항 연산자 오버 로딩은 프로그래밍이 지원하는 연산자의 기능 말고도 사용자가 원하는 기능을 만들 수 있는 좋은 기능이나 사용할 대 주의사항이 존재한다. 본래의 의도를 벗어난 형태의 연산자 오버 로딩은 좋지 않다. 연산자 오버 로딩은 잘못 사용하면 프로그램을 복잡하고, 이해하기 어렵게 만든다. 10+20은 30이다. pos1+pos2의 값은? 보통의 사용자라면 pos1과 pos2의 값을 더한 뒤 반환하는 기능이라고 생각할 것이다. 하지만 우리의 기대를 저버리고 pos1의 값을 pos2의 값만큼 증가시킨다든지 아니면 pos1을 pos2의 대입해 버린다든지 전혀 생각하지 못한 결과가 나올 수 있다. 때문에 연산자를 오버 로딩 할 때에는 연산자의 본래 의도를 가급적 충실히 반영해서 연산자의 오버 로딩으로 인해서 발생..
C++ 연산자 오버로딩(Operator Overloading) 연산자 오버 로딩이란 하나의 연산자가 오버 로딩을 통해서 기존에 존재하던 연산자의 기본 기능 이외에 다른 기능을 추가하는 것 연산자 오버 로딩 사용법 class Valueclass { private: int num1, num2; public: Valueclass(int num1, int num2) : num1(num1), num2(num2) {} void Paint() { cout
C 파일입출력 C언어의에서 파일 입출력 함수 출력함수(입력) errno_t : 스트림 개방 성공 시 0, 실패 시 이유에 따른 값을 반환 fopen_s(FILE** _Stream, const char* _FileName, const char* _Mode) : 스트림 개방 함수 해당 파일을 읽어 오는 함수 FILE** _Stream : 스트림을 저장할 변수의 주소를 전달한다! -> 내부에서 동적할당해주기 때문에 이중 포인터를 사용한다. const char* _FileName : 경로와 파일 이름, 확장자까지 전달한다. const char* _Mode : 읽기/쓰기, Text형식/Binary형식 인지 전달한다. fclose(FILE* _Stream) : 스트림 소멸 함수 FILE*fp = nullptr; ////// 절대..
C++ malloc,callco,new malloc, callco, new란 동적 메모리 할당을 할 때 사용한다. 동적 메모리 할당 이란 컴퓨터 프로그래밍에서 실행 시간 동안 사용할 메모리 공간을 할당하는 것을 말한다. 동적 메모리 할당을 이용하면 배열의 크기를 가변적으로 생성할 수 있다. 사용법을 보기 전에 저 3개의 차이가 있는데 malloc과 callco의 차이점은 생성할 때 초기화 값이 0이냐 쓰레기 값이냐 뿐이다. malloc으로 생성한 동적 메모리는 쓰레기 값으로 calloc로 생성한 동적 메모리는 0으로 초기화가 된다. 동적 메모리 할당으로 생성된 메모리는 Heap 영역에 생성된다. Heap 영역은 메모리로 직접 관리해야 한다는 특징이 존재한다. 그렇기 때문에 프로그래머는 동적 메모리 할당을 하고 해당 메모리를 다 사용하면 메모리..
C++ 문자열 함수 문자열 함수들은 #include 안에 포함되어있다. strcat_s 문자열 을 연결해주는 함수 2개의 문자열을 하나로 합쳐주는 역활의 함수입니다. void main() { char str1[7] = "AAA"; char str2[7] = "BBB"; strcat_s(str1, str2); cout
C++ char*와char[] char* 와 char[]은 문자열 배열을 입력할수있는 자료형이다. char str[] = "Test"; const char *str = "Test"; 둘다 똑같은 문자열을 입력받는데 과연 포인터와 배열은 무엇이 다른지 알아보자 일단 두개의 사이즈가 다르다. int main () { char str1[] = "Test"; const char *str2 = "Test"; cout
C++ Point 포인터란 메모리 주소를 저장하는 변수이다. 일단 포인터는 변수이다. 그냥 단순하게 주소를 저장하는 변수이다. 포인터는 프로그래밍에서 참조라는 뜻을가진다. 변수에 직접적으로 접근하지 않고, 주소를 통해 접근 한다. 포인터선언 자료형* 변수명; 간단하게 자료형 뒤에 *만 붙여주면된다 *은 에스크리터 라고 읽는다. 포인터를 선언하면 포인터에 주소를 넘겨줘야하는데 이때는 &변수명을 붙여주면된다. &은 어드레스 연산자라고 읽는다. void main() { int a = 10; int* ptr = &a; cout