본문 바로가기

Programming/C/C++

virtual keyword in C++ 상속, 메모리 관리, 재사용, ... 이것들이 바로 virtual 키워드들과의 관련이 있는 말들이에요. 사실, 학과 커리큘럼을 이수하면서는 이 키워드를 이용하지 않아도 문제를 해결 하는대는 저어어언혀 지장이 없었어요. 하지만 요근래 혼자하는 프로그램도 덩치가 커지고, 클래스를 상속받거나 기능자체를 재사용해야 하는 일이 많은데다가, 궁극적으로 회사(구체적으로 면접)에서 "기본적인" 프로그래밍 능력으로 많이들 생각하는 거 같더라구요. 이것저것 많이 봤는데 생각보다 이 키워드가 해주는 일이 많아서 좀 헷갈리기도 하고 어려운데, 그렇다고 더 좋은, 더 높은 완성도를 이룰 수 있는데 어찌 패스해야 할까요~~ 라는 생각에 포스팅을 시작 하겠지만, 마구마구 파고들면 너무 많은 내용을 언급해야 하므로 "최대한" 간단히.. 더보기
임의의 벡터간 각도 구하기 벡터간 내적을 이용해서 각도를 구하는 프로그램을 구현해 봤습니다. 일단 내적공식은 저번의 포스팅에서 했다 시피 아래와 같습니다. cos을 기준으로 정리하면 아래와 같습니다. 하지만, 일단 벡터는 무조건 단위 행렬로 만들어야 계산이 깔끔해 지기 때문에, 단위행렬의 전제 하에 벡터의 크기는 1. 따라서 아래와 같은 공식을 유도 할 수 있습니다. 이 때, Θ를 구하기 위해서는 arc cosine을 이용하면 됩니다. 나오게 된 값을 arc cosine을 이용해서 풀게 되면 Θ를 구할 수 있는 공식인데요, 그렇게 해서 나온 공식 입니다. 공식은 모두 다 준비 되었습니다. 클래스를 만들어야죠? 벡터는 1x4짜리 크기이며, 단위행렬 만들기와 크기 구하기, 내적 그리고 다른 벡터와 각도 구하기를 할 수 있습니다. VE.. 더보기
3x3 행렬 코딩 앞선 포스팅의 내용을 코딩 한 것입니다. 서적이 옛날에 나왔다 보니까 엄청난 포인터의 작렬이군요 ;ㅅ; 일단 코드의 내용입니다. 딱히 어려운 부분이 없어서 그냥 원문 타이핑 했구요, main부분은 나와있지 않아서 직접 작성 했습니다. 또한 printMatrix(..) 함수는 값 제대로 들어갔는지 확인 차 작성 했구요. #include #include typedef struct { float mat[3][3];// the rows and columns } matrix3x3_t; void MatrixAdd(matrix3x3_t* matrixA, matrix3x3_t* matrixB, matrix3x3_t* resultMatrix) { // add two matrices, A and B, together an.. 더보기
C reference 정리 pdf 학기중에 창우형에게 숙제 받고 만든 C Reference 정리 pdfㅋ 그땐 힘들었지만 그래도 기본만 이라도 익혔던 좋은 숙제였당ㅋㅋ 더보기
포인터 2차 동적 할당 #include #include int main(){ int **dynamicArray;//동적할당으로 쓸 변수 선언 int row, col; /* 10 x 5 행렬 만들기 */ row = 5; col = 10; /* 메모리 할당 */ dynamicArray = new int *[row]; for(int it = 0; it < row ; it++) dynamicArray[it] = new int[col]; /* 초기화 */ for(int i = 0 ; i < row ; i++) for(int j = 0 ; j < col ; j++) dynamicArray[i][j] = 0; /* 값확인 */ for(int i = 0 ; i < row ; i++){ for(int j = 0 ; j < col ; j++){.. 더보기