C++ (40) 썸네일형 리스트형 C++ explicit explicit란 강제로 형변환을 하지 않겠다라는 뜻이다. class A { public: int num; explicit A(int n) : num(n) {}; }; void printA(A a) { std::cout C++ Friend Friend란 대상 객체의 private영역도 확인하겠다 라는뜻이다. A라는 객체의 Firend로 B객체를 선언하게되면 A객체는 B객체의 private영역도 확인할수있다. #include"BBB.h" class AAA { private: int number; public : void Paint(BBB bb) { cout C++ 구조체(struct) 구조체란 연관있는 데이터를 하나로 묶을 수 있는 문법적 장치이다. 플레이어를 만들게되면 체력,마나,이동속도,공격력등등이 존재할것이다. 이것들을 관리하기 위해서 변수 4개를 만드는건 너무 불편하다고 느낄것이다. 이런 문제를 해결해주는게 구조체이다 struct Player { int HP; int MP; float Speed; int Damage; }; int main() { Player player_0; player_0.HP = 100; player_0.MP = 10; player_0.Speed = 0.7f; player_0.Damage = 7; player ={100,10,0.7f,7};시 } 이런식으로 하나의 변수를 만들어서 편하게 관리할수있다. 구조체는 하나하나 넣어서 초기화할수있지만 마지막 문구처럼.. Inline함수 인라인 함수란? 함수로 정의된 코드를 일반 코드라인으로 복붙하는 기능을 의미한다. 인라인 함수를 설명하기 전에 함수의 호출 방식을 설명하면 함수를 정의하고 호출하면 해당 함수를 스택에 담게 된다 그다음으로 함수 주소로 가서 해당 함수를 실행하고 다시 해당 함수를 호출한 호출자 함수로 다시 돌아가는 과정을 거친다. 그러다 보니 그냥 main 코드 라인에 적는 것보다 함수를 이용해서 만든 게 조금 더 느릴 수 있다. 이런 점을 보완하기 위해서 나온 것이 Inline 함수이다. 사용방법 1 2 3 4 5 6 7 8 9 10 inline int sum(int a, int b) { return a + b; } int main() { int c = sum(10, 20); // int c = 10 + 20; cout C++의 Casting,형변환 형변환이란 데이터 타입을 다른 데이터 타입으로 변경하는 것을 의미한다. 형변환 종류는 2가지인데 1. 묵시적 형 변환 사용자가 의도하지 않아도 컴파일러가 변환시켜주는것 2. 명시적 형 변환 사용자가 해당 자료형을 사용자가 지정한 자료형으로 변경하는것 묵시적 형변환 예시 void main() { int temp = 3.14; cout STL vector에서 push_back과 emplace_back의 차이점 push_back, emplace_back : vector의 요소 끝에 원소를 추가하는 함수이다. 두함수의 차이 : push_back과 같은 삽입 함수들은 삽입할 객체를 받지만 emplace_back과 같은 생성 삽입 함수는 삽입할 객체의 생성자를 위한 인자들을 받아 std::vector 내에서 직접 객체를 생성하여 삽입하므로 임시 객체의 생성과 파괴, 복사(혹은 move)를 하지 않아도 되어 성능상 더 유리하다는 것이다. push_back은 전달받은 객체를 임의 복사하거나 이동시켜서 값을 복사합니다. 즉, 따로 추가 연산작업이 필요합니다. emplace_back은 필요한 인자를 직접 parameter로 받아 내부에서 생성-삽입-소멸 하므로 따로 임시 객체가 생성되지 않습니다. 결과 : push_back.. C++ 가상 함수(Virtual),순수 가상 함수 , 가상 소멸자 가상 함수는 기본 클래스(상속되지 않은 클래스) 내에서 선언되어 파생 클래스에 의해 재정의되는 맴버 함수입니다. 1. 클래스의 공개(public) 섹션에 선언합니다. 2. 가상 함수는 정적(static)일 수 없으며 다른 클래스의 친구(friend) 함수가 될 수도 없습니다. 3. 가상 함수는 실행시간 다형성을 얻기위해 기본 클래스의 포인터 또는 참조를 통해 접근(access)해야 합니다. 4. 가상 함수의 프로토타입(반환형과 매개변수)은 기본 클래스와 파생 클래스에서 동일합니다. 5. 클래스는 가상 소멸자를 가질 수 있지만 가상 생성자를 가질 수 없습니다. 가상함수는 실행시간(Runtime)에 함수의 다형성(Polymorphism)을 구현하는데 사용됩니다 1 2 3 4 5 6 7 8 9 10 11 12.. Precompiled header(미리컴파일 헤더) Precompiled header(미리컴파일 헤더)란 자주 변경되지않는 긴 소스를 미리 컴파일하여 컴파일결과를 별도의 파일에 저장하여 다시 똑같은 헤더를 컴파일시 해당파일을 처음부터 컴파일하지 않고 미리 컴파일된 헤더 파일을 사용해 컴파일 속도를 월등히 항상 시켜줍니다. 보통 C++파일을 만들때 자동적으로 생성되는 코드인 stdafx.h와 stdafx.cpp이 있다. 이 파일의 용도는 MFC(MS에서 제공하는 소프트웨어 라이브러리 쳬계를뜻한다.)에서 자주 사용되는 공용소스들을 Precompiled header로 만들어 제공하기 위해 디폴트로 stdafx.h와 stdafx.cpp이 위자드에서 자동 생성되는 것이다. VC 에서는 프로젝트 송송 -> C/C++ -> 미리컴파일된 헤더 항목에서 Precompil.. 이전 1 2 3 4 5 다음