상태의 연구소
close
프로필 사진

상태의 연구소

github: @denev6

  • 분류 전체보기 (27)
    • Robot (10)
      • Robotics (0)
      • Reinforcement Learning (3)
      • Deep Learning (1)
      • Computer Vision (3)
      • Computer Network (2)
      • Generative AI (1)
    • Paper (0)
    • Programming (7)
      • C,C++ (7)
      • python (0)
      • ROS2 (0)
      • pytorch (0)
    • 프로젝트 (4)
      • 6족보행로봇 프로젝트 (4)
    • 이모저모 (5)
      • 생각 정리 (0)
      • 독후감 (5)
  • 홈

[C,C++] Inheritance and Type Casting

Type CastingUpcasting & Downcasting이해를 돕기위해 아래와 같은 클래스가 있다고 하자.#include class Car{public: Car(std::string name) : name_(name) {} const std::string &name() const { return name_; }private: std::string name_;};class Bus : public Car{public: Bus(std::string name) : Car(name), money_(0), bus_name_("BBus") {} void GetCharge(int charge) { money_ += charge; } int money() { return money..

  • format_list_bulleted Programming/C,C++
  • · 2025. 10. 10.

[C, C++] Make

Make를 사용해야하는 이유1학년때는 Window에서 visualstduio를 사용해 Run버튼 딸깍 누르면 실행되는 건 줄 알았지만 리눅스 세상에서는 어림도없다.소스코드를 빌드하기 위해서는 컴파일과 링킹단계를 거치는데 소스코드를 기계어로 바꾸는 컴파일 단계와 실행파일로 만들기 위해 어떤 목적파일(.o)들이 필요한지 명시해주는 링킹단계가 필요한데 이들을 매번 Shell에 입력할 수 없으니 하나의 파일로 만들어 둬야하고 이 파일이 Makefile이다. 아래에서는 실습 때 사용한 Makefile을 예제로 어떻게 작성하는지와 어떻게 동작하는지에 대해서 알아본다.아래 글은 아주 잘 정리된 글이니 이 글을 읽고오면 아래 예제 파일을 이해하기 쉽다.씹어먹는 C++ - Makefile 실전아래 코드는 Makefi..

  • format_list_bulleted Programming/C,C++
  • · 2025. 10. 10.

참조리턴

참조리턴참조리턴은 함수의 반환값을 반환할 때 참조를 사용해 리턴하는 것을 말합니다.함수에서 객체나 값을 반환할 때 복사되어져서 전달되게 되는 데 이런 불필요한 복사를 막을 수 있어 효율적인 프로그램을 만들 수 있는 방법입니다. 간단한 예시를 통해 참조리턴을 이해해보도록 하겠습니다. 1) 값 전달 방식(참조를 사용하지 않은 경우)참조를 사용하지 않은 경우 위와 같이 add함수안에서만 생명력을 가지는 변수 n이 생성됩니다. 그리고 반환을 할 때도 n의 값을 전달하는 방식입니다. 2) 참조를 통한 전달(매개변수에만 참조를 사용한 경우)참조로 매개변수를 받으면 a라는 변수의 별명이 n으로 추가되는 것입니다. 그래서 1번 방식에서의 불필요한 복사생성을 안해도 되는 장점이 있지만, 값 변경이 목적이 아니라 단순히 ..

  • format_list_bulleted Programming/C,C++
  • · 2022. 2. 23.

복사생성자

복사생성자복사생성자함수는 복사 생성 시에만 실행되는 특별한 생성자입니다.클래스에서 오직 1개만 존재할 수 있고, 매개변수도 오직 하나로 자기 클래스에 대한 참조입니다.선언형식은 다음과 같습니다.class ClassName { ClassName(const ClassName& c);}; const는 붙여도되고 안붙여도되지만 참조를 통한 전달의 유일한 단점이 원본이 바뀔 수 있다는 점임을 고려했을 때 const를 붙이게 되면 원본이 바뀌게 되는 상황을 방지할 수 있어 붙이는 것이 좋습니다. &를 붙여 참조를 통해 전달하는 이유는 값 전달 방식(call by value)로 매개변수를 전달함에따라 불필요한 복사생성이 생기기 때문에 효율성 증대를 위해 사용한 것입니다. 복사생성자가 필요한 이유#includeusi..

  • format_list_bulleted Programming/C,C++
  • · 2022. 2. 23.

연산자 중복

연산자 중복연산자 중복이란 이미 역할이 정해져 있는 연산자에 다른 의미를 부여하는 것을 말합니다. 예를 들어, '+' 연산자를 생각해보면 수학에서는 + 연산의 연산대상에 값이 오지만 실제 세계는 " 8분 음표 + 8분 음표 = 4분 음표"와 같이 다양한 것들이 오고 우리는 그것을 이상하게 여기지 않습니다. 이런 것을 반영하고 연산자의 쓰임을 늘리기 위해 연산자 중복이 존재합니다. 연산자 중복까지 공부하셨다면 string 클래스를 아실겁니다. string을 +연산자로 더하면 문장이 합쳐집니다. +연산자가 string 클래스가 연산대상으로 왔다는 것을 확인하고 적절한 연산을 해주는 것입니다. 연산자 중복 함수를 만드는 방법다음은 연산자 중복 함수선언 형식입니다.리턴타입 operator 연산자(매개변수리스트..

  • format_list_bulleted Programming/C,C++
  • · 2022. 2. 22.
static 멤버(정적멤버)

static 멤버(정적멤버)

static 멤버변수, static 멤버함수static 멤버변수와 static 멤버함수는 같은 클래스의 객체들이 공유할 수 있는 변수와 함수입니다. static 멤버변수는 일반 변수처럼 객체마다 생성되는 것이 아닌 "공유변수"로써 클래스 당 1개만 있는 것입니다. 예를 들어, 사람들이 의견을 공유하는 게시판이 있다고 생각해봅시다. class Board 게시판에는 다양한 사람들이 글을 씁니다. 그리고 그 기록들이 차곡차곡 쌓이죠. 글 하나하나는 객체라고 볼 수 있고, 글이 쌓인 집합이 static변수로 볼 수 있습니다. 아래에서 관련예제를 보도록 하겠습니다. static 변수,함수 사용법static 멤버를 사용하기 위한 방법으로는 두 가지가 있습니다. 1. 객체의 멤버로 접근하는 방법2. 클래스명과 범위지..

  • format_list_bulleted Programming/C,C++
  • · 2022. 2. 21.
  • navigate_before
  • 1
  • 2
  • navigate_next
전체 카테고리
  • 분류 전체보기 (27)
    • Robot (10)
      • Robotics (0)
      • Reinforcement Learning (3)
      • Deep Learning (1)
      • Computer Vision (3)
      • Computer Network (2)
      • Generative AI (1)
    • Paper (0)
    • Programming (7)
      • C,C++ (7)
      • python (0)
      • ROS2 (0)
      • pytorch (0)
    • 프로젝트 (4)
      • 6족보행로봇 프로젝트 (4)
    • 이모저모 (5)
      • 생각 정리 (0)
      • 독후감 (5)
Copyright © 충남대이적 모든 권리 보유.
SKIN: Copyright © 쭈미로운 생활 All rights reserved. Designed by JJuum.
and Current skin "dev-roo" is modified by Jin.

티스토리툴바