no image
C++, C# 에서 값 타입을 참조로 전달하는 방법
C# ref, out 키워드using System;class Program{ static void Main() { int number = 5; MultiplyByTwo(ref number); int number2; MultiplyByTwo2(out number2); } static void MultiplyByTwo(ref int num) { num *= 2; } static void MultiplyByTwo2(out int num) { num *= 2; }}C# 에는 인수로 전달된 변수를, 참조로 전달할 때 사용하는 키워드로 ref 와 out 이 있다.ref는 ..
2024.07.07
no image
c++ 객체 반환, 포인터 관리, 스마트 포인터
객체를 반환하는 3가지 형태 1. 정적으로 생성한 객체 반환 TestInstance TTest::getTestInstance(int i) { TestInstance test_instance{i}; return test_instance; } int main() { std::cout
2024.04.23
no image
윈도우10 Qt6/ Qt Creator13/ Opencv4.9 연동, 설정
Window Qt6 OpenCV 연동 cv2 연동 확인용으로, 별도의 빌드 없이 windows를 다운로드하고 extract 해준다. 윈도우는 시스템 환경 변수 path에 dll 폴더 위치를 넣는다. C:\Users\~~\opencv\build\x64\vc16\bin 환경 변수가 잘 들어갔는지 opencv_version을 입력해 확인한다. Qt를 설치할 때, 여러 옵션이 있는데 for desktop dev를 고르면 오른쪽과 같이 체크가 되는 듯하다. Custom으로 설치해도 무관한데 윈도우의 경우 MSVC 옵션들을 선택해 주자. Qt Creator(윈도우) 에서 MinGW(gcc/g++) 컴파일러로 cv2를 사용하려면 cv2를 MinGW로 빌드해줘야 한다. Qt creator에서 New Project를 만..
2024.04.15
no image
c++ inline compile
클래스 정의에서 함수의 정의는 컴파일된 이후에 링커에 의해 하나의 실행파일로 묶이기만 하면 된다. //Car.h #ifndef __Car_h__ #define __Car_h__ class Car { private: int fuelGauge; public: void getFuelGauge(); void setFuelGauge(int fuel); }; #endif //Car.cpp #include "Car.h" #include inline void Car::getFuelGauge() { printf("now fuel : %d", this->fuelGauge); } inline void Car::setFuelGauge(int fuel) { this->fuelGauge = fuel; } //Main.cpp #i..
2024.04.08
no image
열혈 C++ 프로그래밍) Part 1
C++은 함수 호출 시 매개변수 자료형이 안 맞아도 에러를 던지지 않고(경고만 함) 자동 형변환 되고 데이터 손실이 난다. 인라인 함수 inline int add(int a, int b) { return a + b; } inline 키워드를 사용해 함수를 정의할 수 있다. inline 키워드를 사용하면 해당 함수가 호출되는 대신 컴파일러가 해당 함수의 코드를 호출 지점에 직접 삽입하려고 시도한다. 이로 인해 호출 오버헤드가 제거되어 실행 시간을 단축할 수 있다. 하지만 코드 크기가 증가한다 그리고 컴파일러에게 인라인으로 처리하도록 제안하는 것으로 수용하지 않을 수도 있다. 매크로 함수 #define SQUARE(x) ((x) * (x)) ... void main(void) { cout
2024.03.04