본문 바로가기

분류 전체보기17

[C++] 복사 생성자(copy constructor) 복사 생성자는 말 그대로 원본 객체가 복사될 때 호출됩니다. case 1. 객체가 매개변수의 인자로 넘어갈 때 case 2. 객체간의 대입연산이 이뤄질 때 case 3. 객체를 반환할 때 3가지 모두 객체의 복사가 일어납니다. 그럴때 복사생성자가 호출이 됩니다. 1,2,3번에 관한 예제코드입니다. 더보기 //.h .cpp class CPerson { public: CPerson();//기본 생성자 CPerson(const std::string& name, const int& age);//생성자 오버로딩 CPerson(const CPerson& person);//복사 생성자 void Show(); ~CPerson();//소멸자 private: std::string name; int* age = nullpt.. 2020. 7. 26.
[C++] call by value, call by address, call by reference 차이 함수가 호출될 때 매개변수에 인자를 어떤 방식으로 넣어줄건지에 대한 개념이죠. call by value : 값에 의한 전달 call by address : 주소에 의한 전달 call by reference : 참조에 의한 전달 1. call by value 더보기 //main void CallByValue(int value) { value = 20; std::cout 2020. 7. 21.
[openCV] 비주얼스튜디오(visual studio) openCV 적용하기 안녕하세요. 처음 외부 라이브러리나 dll을 적용할 때 참 어려움을 많이 겪었었습니다. 그 중에서 opencv 적용하기에 대해 포스팅을 쓰려고합니다. 오늘 포스팅을 보시면 비단 opencv뿐만 아니라 다른 라이브러리도 적용하기가 수월하실거에요. 저는 visual studio2019 버전에서 빌드했습니다. 시작하겠습니다. 1. opencv 다운받기 https://opencv.org/releases/ Releases opencv.org 에서 openCV 4.4.0을 다운받고 압축해제 합니다. 저는 따로 opencv관리 폴더를 만들어 저장합니다. 2. visual studio 프로젝트 설정 모든 구성으로 바꿔주시구요. 플랫폼은 x64입니다. x86은 CMake로 따로 만들어 주거나, openCV 낮은버전 릴리.. 2020. 7. 19.
[C++] 생성자(Constructor) 소멸자(Destructor) 생성자 객체가 생성되면서 멤버변수의 초기화나 멤버함수를 호출하는 등 사전에 필요한 준비작업을 하는 함수 입니다. 1. 반환 형은 없다. 2. 클래스 이름과 동일하게 선언을 한다. 3. 외부의 값으로 멤버변수를 초기화 해야할 경우 매개변수를 가진 생성자를 재정의(오버로딩) 할 수도 있다. 쉽게 말하자면 우리가 변수를 초기화 하듯이 객체가 생성됨과 동시에 객체를 초기화 시켜주는 역할을 합니다. 그런데 이전 포스팅들을 보면 생성자가 정의되어 있지 않음에도 불구하고 에러없이 잘 돌아가는데 그건 컴파일러가 기본생성자를 만들어서 호출하기 때문입니다. 만약 오버로딩된 생성자를 정의 한다면 기본생성자는 컴파일러가 만들어주지 않습니다. 따라서 기본생성자도 구현을 해줘야 하죠. //.h class CBase { publi.. 2020. 7. 19.