티스토리 친구하기

본문 바로가기

Robotics/C++

(5)
C++ 생성자 (Constructor) - 객체 생성 시 자동으로 호출되는 함수 - 클래스의 이름과 이름이 똑같음 // my_class.hpp #include class MyClass { public: MyClass(); // 생성자 void Print(); private: uint16_t mVar; }; 헤더 파일에 "MyClass"라는 이름을 가진 클래스를 선언하였습니다. 그리고 클래스와 똑같은 이름으로 "MyClass()"라는 함수를 public으로 선언하였습니다. 여기서 클래스 이름과 똑같은 이름을 가진 "MyClass()" 함수를 생성자(Contructor)라고 합니다. // my_time.cpp #include "my_class.hpp" MyClass::MyClass() // 생성자 { std::cout
C++ 객체생성 new, delete / 멤버 변수 초기화 객체생성 아래는 Number 클래스에 객체를 만드는 코드입니다. class Number { private: int n1; int n2; }; int main() { Number num1; // 스택(stack) 메모리에 만듬 (빠름) Number* num2 = new Number; // 힙(heap) 메모리에 만듬 (느림) num1.n1 = 10; num1.n2 = 20; num2->n1 = 30; num2->n2 = 40; std::cout
C++ 접근 제어자 (Access Modifier) public / protected / private public: 누구나 접근 가능 protected: 자식 클래스에서 접근 가능 private: 해당 클래스에서 접근 가능 (객체가 아니라 클래스임) 아래와 같이 "public:", "protected:", "private:" 밑에 변수를 선언하면 public, protected, private 멤버 변수 또는 멤버 함수가 됩니다. class ExampleClass { public: int public_menber; void function_1() { std::cout
C++ 함수 오버로딩 (overloading) - 함수 이름은 같고 매개변수가 다름 - 매개변수가 다르기 때문에 다른 함수로 인식 - 하지만 반환형이 다르다고 해서 다른 함수로 인식하지 않음 void Person(int age);// 문제없음 void Person(char * name, int age);// 문제없음 void Person(float weight, int age);// 문제없음 int Person(int age);// void Person(int age)과 반환형이 다르지만 // 매개변수의 종류가 같음 -> 컴파일 에러 int Person(float weight);// 문제없음 1. 가장 적합한 함수 --> 좋음 2. 형변환 (하지만 컴파일 경고가 나올 수 있음 - 형변환해서 일치하는 함수 찾았는데, 진짜 네가 원하는게 맞니??) 2-..
C++ Reference (참조) Reference (참조) - 어떤 변수나 상수를 가리키고 싶을 때, 별명을 붙여서 부를 수 있음 - 별명을 붙여 다른 상수 또는 변수를 가리키는 방법 (Reference - 참조) Swap 함수 (변수를 복사하여 받는 경우) #include void Swap(double arg1, double arg2) { double temp = arg1; arg1 = arg2; arg2 = temp; } int main() { double num1 = 10; double num2 = 20; Swap(num1, num2); std::cout