본문 바로가기

Study/C++

(17)
if문 안에서만 쓰이는 변수 선언하기 만약 어떤 변수가 if문 안에서만 쓰인다면, if 조건문 안에다 선언하자. 코드가 훨씬 깔끔해진다. Before: 1 2 PaymentInfo* info = database.ReadPaymentInfo(); if(info) { ... } After: 1 if(PaymentInfo* info = database.ReadPaymentInfo()) {...}
for-else를 C++에서도! std::non_of 파이썬에는 for else라는 문법이 있다. for루프를 돌릴때 break를 만나지 않으면, else문을 실행한다. 123for i in foo: if bar(i): breakelse: baz()cs 이 문법은 C++에서 non_of로 사용할 수 있다. 12if (std::none_of(std::begin(foo), std::end(foo), bar)) baz();if (std::none_of(foo, bar)) baz(); 움 보통 if(func(foo,bar)) baz(); 이렇게 쓰던게 std로 있다니! 재밌는걸 배워서 좋다
[오류] C3867 비표준 구문입니다. '&'를 사용하여 멤버 포인터를 만드세요. 오류 C3867 'type_info::name': 비표준 구문입니다. '&'를 사용하여 멤버 포인터를 만드세요. 원인: 메소드 이름에 ()를 안 붙여줬다. 해결: 메소드를 호출할 때 ()를 빼먹지 말고 붙여주자! void printClassName() { Stone st; cout
[미니 스타듀밸리] 3. GUI창 상황에 맞게 펼치기 이 포스팅에서 할 일: 1. 상황에 맞는 GUI 꺼내기 //MainForm.cpp ... GUI의 메인 역할을 할 .cpp파일 void main() { //앞 포스팅 내용 복붙 Application::EnableVisualStyles(); Application::SetCompatibleTextRenderingDefault(false); //current: 현재 어떤 화면을 꺼내야 하는지 결정 FORM_TYPE current = FORM_TYPE::TITLE; GUI::MainForm title(&current); GUI::MapForm field(&current); //current값에 따라 화면 실행 Application::Run(% title); if (current == FORM_TYPE::FIEL..
[오류] 클래스 템플릿 "std::array"에 대한 인수가 너무 적습니다 클래스 템플릿 "std::array"에 대한 인수가 너무 적습니다 오류 1. 오류 설명과 원인 CLR 프로젝트에서 다른 프로젝트의 클래스를 include하여 쓸 때 종종 나는 오류다. String^>^에 빨간 줄이 쳐지며 인수가 너무 적다고 한다. 원인은 #include한 .h파일에서 using namespace를 쓰고 있기 때문이다. 아래 사진에선 controller가 쓰고있었다. 2. 해결 방법 해결 방법은 두 가지다. 문제있는 .h파일에서 using namespace std를 빼기 void main(array^ args)에서 안의 파라미터를 다 삭제해버리기 → void main()으로 이용 어떤 방법을 써도 잘 돌아간다. namespace std를 많이 해 놨다면 그냥 2번 방법을 쓰자. 잘 돌아가..
[미니 스타듀밸리] 2. GUI 프로젝트 만들고 콘솔과 연동하기 이 포스팅에서 할 일: 1. GUI용 프로젝트 생성 (CLR 빈 프로젝트) 2. CLR프로젝트와 콘솔 빈 프로젝트 연동하기 1. GUI용 프로젝트 생성 > CLR 빈 프로젝트 만들기 clr 빈 프로젝트를 만들어 보자. Windows form 만들게. 솔루션 탐색기- 솔루션 이름 우클릭- 추가- 새 프로젝트 클릭 CLR 빈 프로젝트 선택 - 만들기 > CLR 프로젝트 설정 빈 프로젝트를 만들었다. Window form을 쓰려면 설정을 조금 만져줘야 한다. 솔루션 탐색기 - 프로젝트 이름 우클릭(CLR 프로젝트) - 속성 구성 속성 - 링커 - 시스템 탭으로 이동하여 하위 시스템을 창으로 바꾼다 구성 속성 - 링커 - 고급 탭으로 이동하여 진입점을 수정한다 (예: Main)/ main역할을 할 아무 함수 이..
[미니 스타듀밸리] 1. 프로젝트 생성 & 클래스 다이어그램 그리기 이 포스팅에서 할 일: 1. 프로젝트 생성 2. 클래스 다이어그램 그리기 표시하기 1. 프로젝트 생성 GIT Repository에 새 프로젝트를 생성해 보자. 팀 탐색기 - 우측 하단 솔루션 탭의 새로 만들기 선택 프로젝트 마법사에서 빈 솔루션 선택 새 솔루션 생성 완료. 솔루션 탐색기에서 솔루션 이름 우클릭. 우클릭 메뉴에서 추가 - 새 프로젝트 만들기 - 빈 프로젝트 * 빈 솔루션으로 만드는 이유: 종류가 다른 프로젝트를 한 솔루션에 집어넣을것이기 때문 솔루션 탐색기에 새 빈 프로젝트가 생성된 것을 확인할 수 있다. 앞으로 이 Console이라는 프로젝트에서 게임 조작 & 데이터를 담당할 것이다. 2. 클래스 다이어그램 생성 클래스 다이어그램을 그려보자. 우선 클래스 다이어그램을 프로젝트에 추가한다...
[미니 스타듀밸리] 0. 준비 2019.06.24 기준 수정중 이 포스팅에서 다룰 내용: 0. 만들게 된 이유와 목표 1. 준비물 설치 (Visual studio+ GIT, CLR, 클래스 다이어그램) 0. 만들게 된 이유와 목표 학기 중 팀 프로젝트 과제로 미니 스타듀밸리를 만들었다. 하지만 완성하지 못 했다. GUI도, 코드도, 클래스 설계도, 문서도 하나부터 열까지 성에 안 찬다. 더 잘 만들 수 있었는데 허겁지겁 만들다 보니 부족한 부분이 많다 . 그래서 다시 만든다. 언제까지? 6월 25일부터 7월 8일까지! 약 2주간! Windows Form과 Visual Studio 2019버전을 사용한다. 1. 준비물 소개 > GIT Repository 우선 프로젝트를 저장할 git repository를 새로 만든다. 기존 프로젝트에 ..