반응형 전체 글365 C++ 복사 생성자, 왜 그렇게 생겼냐? 복사생성자를 보면 이렇습니다. 클래스 이름 (const 클래스 이름 &참조변수) 즉, 상수로 선언된 참조자이며 type은 클래스(자기자신)이 되는 것입니다. 복사 생성자 자체는 원래 기존 값을 복사해 전달해주는 개념이라 이 과정에서 값이 바뀌어선 안됩니다.(복사인데 값이 바뀌게 된다면 복사가 아니겠죠?) 따라서 const로 선언된 것이고 정의되어 있습니다. 그렇다면 왜 참조자로 받느냐 인데......... 이걸 이해 하려면 우선 복사 생성자의 호출을 알아야 합니다. 복사생성자가 호출될 때는 1. 대입연산을 할 때 2. 매개 변수로 들어갈 때 3. 반환 값이 있을 때 즉, #include #include using namespace std; class A { int num; string name; publ.. 2019. 2. 24. C++ 복사 생성자란? 얕은복사와 깊은복사 저희는 기본적으로 변수를 선언하고 데이터 값을 입력하는 과정을 다음과 같이 진행합니다. int num_1 = 10; int num_2 = num_1; 이런식으로 선언하는 것이 일반적입니다. 하지만 C++에서는 컴파일러가 다음과 같이 바꿔서 계산을 하게 됩니다. int num_1(10); // int num_1 = 10; int num_2(num_1); // int num_2 = num_1; 이렇게 보면 함수 안에 매개변수를 넣는 것 처럼 보입니다. 실제로도 비슷합니다. 즉, C++은 C와 다르게 int num_1 = 10; 의 과정을 int num_1(10)으로 해석한다는 말입니다. 그렇다면 왜? 굳이? 이런식으로 바꿔 진행하느냐..... 바로 Class 때문입니다. Class를 선언한 후 사용하게 되면.. 2019. 2. 24. 2019-02-23 / 안랩V3 2018 AV-TEST 최우수 성능.... 안랩의 통합 보안 솔루션인 ‘V3 Internet Security 9.0'가 21일 독일 에르푸르트에서 열린 ‘AV-TEST 어워드(AV-TEST Awards)’에서 ‘2018 AV-TEST 최우수 성능 보안솔루션상(AV-TEST Best Performance 2018 Award)’을 국내 보안업계 최초로 수상했다고 하내요. 국내 보안업계의 최초라고 하니 자랑스럽습니다. V3는 오래된 역사를 가진 프로그램중 하나이니까요. 테스트로는 성능(Performance)’, ‘진단율(Protection)’, ‘사용성(Usability)’, ‘복구(Repair)’, ‘안드로이드 보안(Android Security)’ 5개 부문에서 진행됐고 V3가 PC 성능 저하를 최소화하면서도 높은 보안성을 제공하는 점을 높이 평가.. 2019. 2. 23. 2019-02-22 / 요즘 기업 윈도우 시스템에 신종 렌섬웨어가 공격하고 있다 합니다. 보안 뉴스를 훑어 보던 중 신종 렌섬웨어가 기업 관리서버를 타겟으로 공격을 하고 있다는 기사가 올라 왔습니다. 이 신종 렌섬웨어는 Clop이라고 하며 OS는 윈도우를 타겟으로 공격을 한다고 합니다. Clop이라는 렌섬웨어는 기존에도 존재 했지만 아마 새로운 업데이트를 통해 더 강력해진 악성코드 같습니다. 이 랜섬웨어는 서버만 공격하는 것이 아니라 백업 서버도 찾아서 공격한다고 합니다. 때문에 사실상 전혀 복구가 되지 못한다고 하네요. 이 랜섬웨어는 인터넷망, 내부망(인트라넷) 상관 없이 공격을 하며 한국인터넷진흥원 에선 각별히 주의하라고 합니다. 때문에 중요한 파일이나 데이터들은 백업 서버 말고도 외장하드나 usb같은 곳에 안전하게 보관해 놔야 할 것 같습니다. 물론, 컴퓨터에 계속 꽂아 놓으면 안되겠죠. 2019. 2. 22. C++ 소멸자란? 소멸자란 객체의 사용이 끝나고 메모리의 반환될 때 자동으로 실행되는 코드를 말합니다. 생성자 처럼 사용자가 따로 선언을 하지 않으면 컴파일러가 컴파일시 자동으로 생성해줍니다. #include using namespace std; class A { int num; public: ~A() {} }; int main(void) { A a; return 0; } 이렇게 생겼습니다. '~' 로 시작하게 됩니다. 그럼 주로 어떨때 사용이 되느냐? #include using namespace std; class A { int * num; public: A() { num = new int[10]; } ~A() { delete num; } }; int main(void) { A a; return 0; } 이처럼 객채.. 2019. 2. 22. C++ this 포인터?? 그럼 *this 는 뭐지? ※ *this에 대한 설명은 맨 아래에 설명하고 있습니다. 맨 아래만 보면 이해가 잘 가지 않을테니 처음부터 차근차근 읽어주시기 바랍니다.^^ 또한 설명 중 C++의 '참조자'와 포인터의 '값의 참조' 부분이 햇갈릴 수 있으니 유의해 주세요!! C++ 에서 this란 자기 자신을 나타내는 말입니다. 즉 Class A a; 라는 객체가 있고 이 a의 주소값은 0x10 이라고 가정한다면 a 객체에서의 this는 0x10이라는 뜻입니다. 일단 코드로 확인해 보자면 #include using namespace std; class A { int num; public: void print_This() { cout 2019. 2. 22. 이전 1 ··· 52 53 54 55 56 57 58 ··· 61 다음 728x90 반응형