C++
-
C++ newC++ 2021. 1. 15. 17:43
자바에서는 객체 생성시 new를 사용하여 객체를 생성한다. 그런데 C++에서는 new를 사용하지 않고도 객체 생성이 가능하다. new를 사용하지 않을경우 stack영역에 함수가 생성되어 해당 범위 안에서만 사용 가능하며(아래의 경우 TestStack()영역에서만 사용가능) new를 사용할 경우 전역 함수처럼 사용 가능하다. (보통 header파일에 *foo를 선언 하고 cpp에서 new하여 객체를 생성하여 사용하는듯 하다) JAVA처럼 GC가 없기때문에 반드시 delete를 해주어야 하며, 메모리 이슈가 심해서 스마트 포인터라는게 나와 그걸 사용하면 된다. class Foo { public: void Test() { cout
-
C++ 기초 2C++ 2020. 12. 28. 15:58
1. 참조자(reference) 크기가 큰 구조체와 같은 데이터를 함수의 인수로 전달해야 할 경우에 사용 참조자는 대상 변수와 같은 메모리 위치를 참조 int 변수이름; // 변수의 선언 int& 참조자이름 = 변수이름; // 참조자 선언 주로 함수에 인수를 전달할 때 사용 함수가 참조자를 인수로 전달받으면, 참조자가 참조하고 있는 실제 변수의 값을 함수 내에서 조작 참조에 의한 전달(call by reference)은 참조자뿐만 아니라 포인터를 사용해도 똑같은 결과 int main(void) { int num1 = 3, num2 = 7; Swap(num1, num2); // 실제 두변수의 값이 변경이 됨 return 0; } void Swap(int& x, int& y) { int temp; temp ..
-
C++ 기초 1C++ 2020. 12. 24. 16:00
JAVA만 하던 나에게 C++ 거의 동일하면서도 다른것들이 있어 정리해보려고한다. 여러가지가 있겠지만 내가 헷갈리는 것들만 작성하도록 하겠다. C++ 관련 정보는 (www.tcpschool.com/)여기서 얻었다. 1. 메모리의 동적 할당(dynamic allocation) JAVA C++ MyClass a = new MyClass(); int* a = new int; delete a; 2. 구조체(struct) java에 없는 개념인데 kotlin에서 data class와 비슷하게 사용되는 느낌이다. 구조체를 함수의 인자와 반환 값으로 사용 할 수 있다. int CalcProperty(Prop* money) { money->savings = 100; // 호출된 함수에서 원본 구조체의 데이터를 변경 r..