Programming/C++

    연산자 오버로딩

    연산자 오버로딩은 C++에서 제공하는 기본 타입이 아닌 클래스 타입, 즉 사용자 정의 타입에도 연산자를 사용할 수 있게 하는 문법입니다. 장점 컴파일러 내부에 정의되지 않은 타입의 연산이 가능하여 코드의 직관성과 가독성을 좋게 할 수 있습니다. #include using namespace std; class Point { int x; int y; public: Point(int _x = 0, int _y = 0) : x(_x), y(_y) {} void Print() const { cout

    범위 지정 연산자(::)

    범위 지정 연산자를 변수 이름 앞에 붙이면 해당 변수는 전역으로 사용하라는 의미로 쓰인다. 클래스에 사용하면 네임스페이스 멤버를 식별하거나 클래스의 정적 멤버를 호출 할 수 있다. 1. 전역변수에 사용할 수 있다. 2. 네임스페이스에 사용할 수 있다. 3. 열거형에 사용할 수 있다. int x; //전역변수 namespace Namespace { int x; class ClassA { public: int x; }; } enum class Enum { First, Second }; void main(){ int x; ::x = 1; //전역변수 x를 사용 Namespace::x = 1; //Namespace의 x를 사용 Namespace::ClassA c; //Namespace의 ClassA를 사용 En..

    매크로 함수,인라인 함수

    매크로 함수 매크로 여러번 사용하게 될 상수를 문자로 표현하는 방법이다. 매크로 상수는 컴파일 전 전처리기에 의해서 숫자로 치환된다. 장점 -가독성이 매우 좋아진다. 일반 상수를 적어 놓으면 알수 없지만 매크로를 이용해 이름을 써놓으면 인지하기 쉽다. -상수 변경에 매우 용이하다. 일반 상수를 변경해야할 때는 일일이 변경해야하지만 매크로를 사용했다면 매크로 부분만 수정하면 된다. 매크로 함수 매크로를 이용하여 함수의 역할을 대신한다. 파라미터를 받을 수 있으며, 반환할 수 있다. 장점 -인수 타입을 신경쓰지 않아도 된다. 단순 치환만 해주기 때문에 신경쓰지 않아도 된다. -함수호출에 의한 성능 저하가 없다. 단점 -단순 치환방식이라서 복잡한 함수의 기능은 구현하기 어렵다. -#define은 전처리기 영역..

    매개변수의 디폴트 값

    디폴트 값 - 기본적으로 설정되어 있는 값 //매개 변수에 디폴트 값이 선언되어있는 함수 void Function(int num = 5) { std::cout

    비주얼 스튜디오 다중 문자열 검색

    비주얼 스튜디오 다중 문자열 검색

    컨트롤 + 쉬프트 + F 혹은 컨트롤 + F를 이용해 문자열을 찾는 방법 중 String과 int를 둘다 찾고싶을 땐 위와 같이 정규식 사용을 체크해준 후 문자열 들 사이에 | 를 붙여서 찾는다. 다르게 둘 다 포함되있는 것을 찾아야한다면 문자열 사이에 &를 붙여주면 된다.

    [C/C++] C++에서 싱글톤을 사용하는 방법/Lazy initialzation

    싱글톤 패턴(Singleton Pattern) 어떤 클래스가 최초 한번 메모리를 할당한 후 그 메모리에 인스턴스를 만들어 사용하는 디자인 패턴 생성자가 여러번 호출되도 실제 생성된 객체는 하나고 최초 생성 이후 호출된 생성자는 최초에 생성한 객체를 반환 싱글톤 패턴은 단 하나의 인스턴스를 생성해 사용하는 디자인패턴 장점 -사용하지 않으면 아예 인스턴스를 생성하지않음 -고정된 메모리 영역을 얻으면서 한번의 new로 인스턴스를 사용하기 때문에 메모리 낭비를 방지 -전역 인스턴스이기 때문에 데이터를 공유하기 쉬움 -공통된 객체를 여러개 생성,사용할 경우 많이 사용 단점 -싱글톤 인스턴스가 너무 많은 일을 하거나 많은 데이터를 공유시킬 경우 다른 클래스의 인스턴스들 간에 결합도가 높아져 개방-폐쇠원칙을 위배하게..