코딩각

C++ | 레퍼런스의 바른 사용법 (레퍼런스의 스코프)

레퍼런스의 바른 사용법 레퍼런스는 편리하지만 단점도 있기 때문에 올바르게 사용해야 합니다. 레퍼런스의 특성인 초기화가 끝나면 을 변경할 수 없다는 점은 동적할당(힙메모리)을 사용할 때 단점이 됩니다. 메모리는 해제했지만 레퍼런스의 주소는 여전히 남아있다는 것이 문제인데, 이 레퍼런스를 사용하면 해제된 메모리에 접근할 수 있습니다. 이런 경우를 살펴보겠습니다. 나쁜 사용법 (권장되지 않는) 아래의 함수는 참조형을 반환합니다. new 키워드로 힙메모리에 객체를 생성하고 그 포인터를 바깥으로 전달합니다. 바깥에서 받는 것은 레퍼런스입니다. 이 레퍼런스에 동적 메모리가 걸려있는데 동적 메모리는 프로그래머가 직접 해제해야 합니다. main 함수에서 레퍼런스에 delete 키워드를 사용할 수는 있습니다. 하지만 관..

코딩(CODING)/C++ 2021. 1. 2. 00:49

C++ | const 포인터 매개변수(객체) | passing object by a const pointer | 레퍼런스의 경우

const 포인터 (const pointer) const 포인터를 시작하기 전에... 우선 이번 포스팅은 아마 C++에서도 가장 헷갈리는 파트중의 하나가 아닐까 싶습니다. const 와 pointer 가 마구 나와서 쓰다보면 이게 맞는지??를 확인하면서 작성하다가 다시 원점으로 돌아가게 되는 참으로 혼동스러운 부분이 있습니다. 함수에서 const 포인터의 사용 이렇게 헷갈리는 내용은 한번에 이해하기 힘들지만 빙둘러가지 않고 단도직입 적으로 코드에 들어가보는게 더 나을 때가 있습니다. 이 페이지는 아래의 코드를 이해하기 위한 내용입니다. [왜? 사용하는가?] 이 전의 포스팅에서 객체를 함수에 전달할 때 포인터를 사용하는 장단점에 대하여 해설했습니다. C++ | 객체를 함수에 전달하는 방법 | passing..

코딩(CODING)/C++ 2021. 1. 1. 20:29

C++ | 객체를 함수에 전달하는 방법 | passing object by value , reference pointer

객체를 함수에 전달하기 이번 포스팅은 객체를 함수에 전달한다는 조금 어려운 개념에 대한 내용입니다. C++로 이 정도 챕터까지 학습을 진행했다면 밑에서 부터 기초를 착실히 쌓아둬야 그 다음 학습이 수월합니다. 다른 언어와 비교해 봤을 때 C++의 학습시간이 길어지는 것은 포인터와 연관한 주제들에 대하여 다루는 언어가 C++밖에 없기 때문입니다. C언어에도 있지만 C언어에는 객체지향 부분이 빠져 있으니까 C++의 부분집합으로 볼 수 있습니다. C++의 학습량이 훨씬 많죠. 기본 자료형을 함수에 전달하는 것 처럼 객체 타입 역시 함수의 매개변수에 전달할 수 있습니다. 매개변수에 있어서 일반 변수와 포인터 전달방식의 차이를 이해한다면 객체를 전달하는 방식도 이해할 수 있습니다. 객체를 값으로 전달 pass o..

코딩(CODING)/C++ 2021. 1. 1. 19:15

C++ | 함수에서 여러개의 리턴값 처리 | 포인터와 레퍼런스

함수의 리턴값 C++의 함수는 기본적으로 하나의 값만 반환할 수 있습니다. [ return 값 ] 의 형식이 바로 그것이죠. 참고로 main 함수도 값을 리턴합니다. 습관적으로 써놓는 return 0; 는 런타임에게 프로세스의 정상적 종료를 알리는 문장입니다. C++의 함수에서는 하나의 값을 리턴하는 제한 사항이 있기 때문에 여러개의 리턴값을 받으려면 다른 방법을 써야합니다. 어떤 방법이 있을까요? 그렇습니다. 예상할 수 있는 것 처럼 포인터와 레퍼런스를 사용할 수 있습니다. 엄밀히 말하면 여러개의 리턴값을 받는 것은 아니지만 함수의 매개변수에 포인터를 선언해서 main 변수들의 값을 변경합니다. 이렇게 하면 두개가 아니라 100개의 변수의 값도 변경할 수 있겠죠. 문법적으로 다중 리턴값을 지원하는 파이..

코딩(CODING)/C++ 2020. 12. 31. 20:27

C++ | 레퍼런스(reference) | 레퍼런스로 함수에 인수 전달하기 | passing by reference | swap 의 전달방식 비교

레퍼런스로 함수에 인수 전달하기 C++에서 함수에 인수를 전달하는 방법은 크게 세가지가 있습니다. ① 값을 전달하는 방식 - Pass by Value ② 포인터를 사용한 참조 전달 방식 - Pass by Reference using Pointer ③ 레퍼런스 전달 방식 - Pass by Reference 값을 전달하는 방식은 함수를 호출할 때 전달한 인수를 매개변수에 복사하여 사용하기 때문에 원본 데이터에 영향을 미치지 못합니다. 함수의 실행이 끝날 때 오직 하나의 값이 리턴되기 때문에 여러개의 반환값을 받을 수가 없죠. 예를 들어 두 변수의 값을 바꾸는 경우는 하나의 반환값으로 해결이 안됩니다. 이런 경우 포인터를 사용해서 참조를 전달하면 이 문제가 해결됩니다. 포인터 뿐 아니라 레퍼런스를 사용해도 됩..

코딩(CODING)/C++ 2020. 12. 30. 15:33
◀ 1 2 3 4 5 ··· 9 ▶

블로그정보

  • 블로그 이미지
  • ⟪코딩갘 - 100°⟫

    코딩 (파이썬, C언어, 자바) 및 IT정보 블로그

카테고리

  • 분류 전체보기 (1291)
    • IT뉴스 (94)
    • IT일반 (227)
    • IT출판 (161)
      • 워드프레스 | 티스토리 (136)
      • 유튜브 (Youtube) (17)
    • 블록체인 - Blockchain (31)
    • 암호화폐 투자 (191)
    • 운영체제 메뉴얼과 팁 (31)
      • 윈도우11 (10)
      • 리눅스 일반 (21)
    • 코딩(CODING) (380)
      • 자바(JAVA) (82)
      • 파이썬(PYTHON) (92)
      • C# .NET Core (42)
      • 러스트(Rust) (3)
      • C언어(C Language) (41)
      • C++ (41)
      • 자바스크립트(JS) (20)
      • HTML | CSS (36)
      • 루아(Lua) (15)
      • 어셈블리어 MASM (6)
      • PHP (2)
    • 컴퓨터구조 (10)
      • 운영체제 | OS (6)
      • 컴퓨터 하드웨어 (4)
    • FRAMEWORK (58)
      • 자바 | JavaFX (17)
      • 파이썬 | PYGAME (18)
      • 파이썬 | PyQt5 (16)
      • 파이썬 | kivy (5)
      • GDScript(GODOT) (2)
    • 모바일 게임 (8)
    • 알고리즘(Algorithm) (13)
      • C언어 알고리즘 (13)
    • IT 수학 (25)
      • 대수 기초 (9)
      • 지오지브라 계산기 (1)
      • 이산수학 | Discrete Mathematics (2)
      • 수학기초 (13)
    • IT 서적 리뷰 (23)
    • 로블록스(Roblox) (2)
    • 일본어 (8)
    • 영화 (1)
    • IT상품평 (14)
    • 과학일반 (1)
    • 컴퓨터보안 (2)

방문자 카운터

  • 어제 :
  • 오늘 :
  • 누적 :

방문자 그래프

공지사항

  • 비트코인 선물 초보 가이드 모음
  • 하스켈 입문 튜토리얼 모음 - 진행중
  • 코딩 전문 블로그 워드프레스 개설

Copyright © ⟪코딩갘 - 100°⟫. All Right Reserved.

  • 글쓰기
  • 관리자
  • 카테고리
  • 맨위로

티스토리툴바