개발자 '쑥말고인절미'
[22.04.11] noexcp과 Doc,View,MainFrm과 UpdateData() 본문
noexcp : 생성자에는 예외가 없어야한다. 뭐 그런... 의미..?
생성자에 noexcp 붙어있던거 지우고 변수 추가할거 다 추가한 다음에 다시 noexcp을 붙여주면 변수추가가 안되게 바꿀 수 있다....
왜 갑자기 2017부터 그런게 생겼는지 모르겠지만 하여튼 noexcp은 그런 아이다
noexcp은 사실 버그랍니다. 커뮤니티에서도 noexcp 없애달라고 싸웠다고한다(?) 22년도 버전 비쥬얼스튜디오에서는 없어졌다고 한다.
CalculatorView.h와 CalculatorView.cpp에 noexcp 키워드가 있다.
--------------------------------
Doc, View, MainFrm 클래스들은 MVC패턴의 모델, 뷰, 컨트롤러같은 역할을 한다. 근데 MVC패턴처럼 역할이 정확히 나눠져있는것은 아니기떄문에 어디에 작성해도 된다고하셨다. 구체적인건 알아서 찾아보고
Arithmetic이라는 클래스를 만들었다. 사칙연산을 하기 위한 클래스인데 오오 처음만들어봐서 신기하다 물론 지금은 생성자, 소멸자, 초기화 메소드들만 있다 그래도 난 충분히 신기하다. 3개의 매소드를 헤더에는 선언만 하고 정의는 cpp파일에서 하라고 하셨다 헤더에 하는 것과 cpp에서 하는 것은 때에 따라 결정하는듯 하다. 생정자가 있는데 초기화메소드를 왜 만드는거지 싶었는데 사용자가 값을 초기화하고 싶어할 때 초기화메서드를 써서 초기화 할 수 있기 때문이라고 하셨다. 만약 생성자를 다시 불러서 초기화를 한다면 해당 클래스의 메모리가 새로 잡히는 꼴이니 메모리 면에서 적합하지 않은 것이다.
--------------------------------
UpdateData()
참고링크 https://redssin.tistory.com/11
UpdateData(TRUE)는 현재 컨트롤에 적힌 값을 변수로 넣어 갱신해준다.
UpdateData(FALSE)는 변수에 적힌 값을 컨트롤에 표시하도록 갱신해준다.
이때, 변수는 DoDataExchange에 컨트롤과 변수가 연결된 상태여야 한다.
'STUDY > C++ & MFC' 카테고리의 다른 글
[MFC] CWinApp 클래스와 CWnd 클래스 (0) | 2022.04.13 |
---|---|
[MFC] Win32 공부중 (0) | 2022.04.12 |
[MFC] UpdateData() 함수란? (0) | 2022.04.11 |
[에러] 비정적 멤버 참조는 특정 개체에 상대적이어야 합니다 (0) | 2022.04.11 |
계산 mfc 구현 참고링크 (1) | 2022.04.08 |