목록c++ (14)
dev_eun

유닛테스트 하는 방법 참조 Microsoft.VisualStudio.TestTools.CppUnitTestFramework API - Visual Studio 이 문서에서는 Microsoft 기본 단위 테스트 프레임워크를 기반으로 C++ 단위 테스트를 작성하는 데 사용할 수 있는 CppUnitTestFramework 멤버에 대해 설명합니다. docs.microsoft.com 1. 솔루션에 '기본 단위 테스트 프로젝트' 추가하기 2. 테스트프로젝트의 참조에서 참조 추가를 눌러 테스트할 프로젝트 추가하기 3. 테스트.cpp에 테스할 함수가 있는 파일 include 4. 테스트 함수 작성 결과를 테스트 탐색기에서 확인할 수 있다. 창이 안보인다면 테스트 옵션에서 탐색기 누르거나 Ctrl + E, T 단축키 자..
코딩테스트 연습 - 모두 0으로 만들기 각 점에 가중치가 부여된 트리가 주어집니다. 당신은 다음 연산을 통하여, 이 트리의 모든 점들의 가중치를 0으로 만들고자 합니다. 임의의 연결된 두 점을 골라서 한쪽은 1 증가시키고, 다른 한 programmers.co.kr 트리이기 때문에 어떠한 노드를 골라도 루트노드가 될 수 있다. 리프 노드부터 시작해서 bottom-up으로 루트까지 올라가면 되겠다고 생각했었다. 그러려면 부모 노드가 누구인지 알아야 하는데, 그렇게 할 필요가 없었다. 자식 노드의 순서가 중요하지 않기 때문에 자식 노드의 수만 세고 있으면 되었던 것. 그래서 리프 노드부터 시작해서 자신과 각 부모 노드의 weight를 수정하는 방식으로 진행했다. 루트(0번 노드)에서 시작하는 dfs, bfs로..
프로그래머스 괄호 회전하기 코딩테스트 연습 - 괄호 회전하기 programmers.co.kr 정상적인 괄호 묶음인지 확인하는 것은 stack 문제로 유명한 것이니 그렇게 해결하면 됐는데, string을 어떻게 하나씩 shift할 수 있을까 하다가 rotation queue가 생각나서 queue로 해결하였다. 다른 사람들의 코드를 보니 string에서 맨 앞을 지우고 맨 뒤로 추가하는 방식으로도 많이 한 것 같다. 테스트에서 13번을 처음에 틀렸었는데 여는 괄호만 있는 케이스(ex. "{{{")를 해결하지 않아서 였다. c++ 코드 eun-seong/Documents 정리. Contribute to eun-seong/Documents development by creating an account on Gi..
코테는 c++로만 이용해서 보다가 js 코테도 요즘 많이 생겨나고 있는 것 같아서 언제든 볼 수 있게 준비한다. 아주 많이 참고한 사이트 JavaScript로 만나는 세상 | JavaScript로 만나는 세상 처음 시작하는 사람들을 위한 JavaScript 교재 helloworldjavascript.net 수 연산은 동일 +, -, *, /, %, ++, --, +=, -= object, array, function 등 참조형 변수들은 const로 선언해주는 게 맞다! 변수 선언 const var_const;// 재할당 X, 하지만 참조형 변수 array, function, object에는 사용 let var_let;// 재할당 O var var_var;// 재할당 O, 호이스팅때문에 요즘은 잘 안쓴다고..
용어 try : 예외가 발생할 수 있는 곳 throw : 예외 발생 catch : 예외 처리 스택 풀기 : 스택 메모리에 불필요한 데이터가 쌓이지 않게 예외 발생하기 전으로 돌아감 try, catch, throw 예외를 if-else문으로 처리하는 것보다 구조적으로 간결 try{ // 에러가 발생할 수 있는 코드 // 흐름이 한 눈에 보임 if(error 발생) throw errorcode; ... } catch(int e){ 예외 처리 } catch 다중화 예외 상황을 상황에 따라 구별하여 사용할수 있음 try{ ... } catch(int eNum){ } catch(char eCh){ ... // 이중 가능 try { ... } catch(...) { ... } } 예외 클래스 사용자화 예외 클래스 ..
용어 클래스 템플릿 클래스 템플릿 : 클래스를 찍어내는 모양자 선언 template class 클래스이름 { } 함수 템플릿처럼 비슷하게 사용 멤버 선언 및 정의 template 클래스이름::멤버함수이름() { } ### 템플릿 매개 변수 * 선언 ```c++ template template ``` * 사용 ```c++ CMyArray arr; ``` * * * ## 템플릿 특수화 ### 함수 템플릿 특수화 ```c++ template T Add(T a, T b) { return a + b; } template char* Add(char* pszLeft, char* pszRight) { ... } 매개변수가 모두 char*이면 두 번째 함수로 대체 클래스 템플릿 특수화 template class C..
[Chapter 8] 수평적 관계와 집합 관계 용어 friend 선언 friend 예약어 사용 friend class 클래스이름; friend 함수원형선언; 접근 제어 지시자의 영향 X 응집성을 위해서 존재friend 함수 class CMyData{ ... // 전역 함수를 friend로 선언 friend void PrintData(const CMyData& a); } void PrintData(const CMyData& a){ cout
용어 virtual : 가상 함수 예약어 가상함수 : virtual 예약을 앞에 붙여 선언한 메소드 추상자료형 : 상위 크래스로 하위 파생 클래스를 참조할 때의 상위 클래스 형식 vtable : 가상 함수 테이블, 함수 포인터 배열 순수 가상 함수 : 선언은 지금 해두지만 정의는 미래에 하도록 미뤄둔 함수 순수 가상 클래스 : 순수 가상 함수를 멤버로 가진 클래스 가상 함수 virtual 예약어를 앞에 붙여서 선언한 메소드 virtual 반환형식 메소드이름 virtual void PrintData(); 파생 형식에서 메소드를 재정의하면 과거의 정의가 완전히 무시된다. 미래 의 함수를 호출하는 것..! 참조 형식이 무엇이든 실 형식의 메소드를 호출한다. 일반 메소드의 경우 실형식은 중요하지 않고 참조 형식..