HourMeter.h #pragma once #include #include class HourMeter { public: HourMeter(); ~HourMeter(); void startMeasure(); void endMeasure(); double getLatestDuration(); private: std::chrono::system_clock::time_point begin; std::chrono::system_clock::time_point end; std::chrono::duration result_sec; bool isMeasuring; }; HourMeter.cpp #include "HourMeter.h" HourMeter::HourMeter() : isMeasuring(false) {..
#include using namespace std; void test() { int a = 1; int b = 2; auto func1 = [&]() { if (a == 1) { throw std::runtime_error("a = 1"); } cout
#include #include using namespace std; class Person { public: Person() : name("Kim") {} explicit Person(const string& name) : name(name) {} void set_name(const string& name) { this->name = name; } string get_name() const { return name; } virtual void all_info() const { cout
exit() -싱글스레드 환경에서 프로그램 종료 시 사용된다. -exit()를 호출하더라도 프로그램이 바로 종료되지 않고 다음의 경우 객체의 소멸자가 호출된다. --전역 정적 클래스 객체를 생성한 경우 --전역/지역 싱글톤 동적 객체를 사용한 경우 (클래스 정적 변수에 할당) quick_exit() -exit()를 멀티스레드 환경에서 사용하면 글로벌/정적 객체들은 스레드 종료 없이 소멸되려고 한다. -멀티스레드 환경에서 정상적으로 에러코드를 반환하고 프로그램을 종료하기 위해 quick_exit()를 호출해야 한다. -quick_exit() 호출 시 각 객체의 소멸자를 호출하지 않는다. --위의 exit()에서 소멸자가 호출되는 경우에도 quick_exit()는 소멸자 호출없이 바로 종료된다. abort(..
#include #include #include using namespace std; void insertItem(unordered_map& items, const int& key, const string& value) { items.insert(unordered_map::value_type(key, value)); } string getItem(unordered_map& items, const int& key) { return items[key]; } void main() { unordered_map items; insertItem(items, 0, "Park"); insertItem(items, 1, "Kim"); insertItem(items, 2, "Hong"); insertItem(items, ..
아래의 코드는 윈도우즈 환경에서 "Windows.h" 헤더파일에 포함된 API를 사용하여 장치의 맥 주소를 출력하는 과정을 나타냅니다. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 #include #include #include #include #pragma comment(lib, "iphlpapi.lib") IP_ADAPTER_INFO* GetNetworkAdaptersInfo() { DWORD dwBufLen = 0; DWORD dwStatus = GetAdaptersInfo(NULL, &dwBu..