미래를 설계하는 개발자

고정 헤더 영역

글 제목

메뉴 레이어

미래를 설계하는 개발자

메뉴 리스트

  • 홈
  • 태그
  • 미디어로그
  • 위치로그
  • 방명록
  • 분류 전체보기 (88)
    • C 언어 (7)
    • C++ 언어 (7)
    • Java (10)
      • Java Error (2)
      • Java Setup (1)
      • Java Study (2)
      • Design Patterns (2)
    • Spring (23)
      • Restfull API (2)
      • SpringBoot-React (5)
      • SpringBoot-MSA (16)
    • WebProgramming (26)
      • HTML (0)
      • CSS (0)
      • Javascript (1)
      • Error (0)
      • JSP (25)
    • 자료구조 (3)
    • DataBase (7)
      • Data Modeling (1)
      • Oracle Database (3)
      • SQL (3)
    • Android (0)
    • 기타 (2)
    • Git (2)
    • Algorithm (1)
    • 끄적끄적 (0)
홈태그미디어로그위치로그방명록
  • C 언어 7
  • C++ 언어 7
  • Java 10
    • Java Error 2
    • Java Setup 1
    • Java Study 2
    • Design Patterns 2
  • Spring 23
    • Restfull API 2
    • SpringBoot-React 5
    • SpringBoot-MSA 16
  • WebProgramming 26
    • HTML 0
    • CSS 0
    • Javascript 1
    • Error 0
    • JSP 25
  • 자료구조 3
  • DataBase 7
    • Data Modeling 1
    • Oracle Database 3
    • SQL 3
  • Android 0
  • 기타 2
  • Git 2
  • Algorithm 1
  • 끄적끄적 0

검색 레이어

미래를 설계하는 개발자

검색 영역

컨텐츠 검색

분류 전체보기

  • 가상 함수 - virtual Function

    2018.03.13 by ChrisMare

  • 동적 바인딩(DynamicBinding)

    2018.03.13 by ChrisMare

  • 다중 상속 시 모호성발생의 해결 방법(가상상속 처리)

    2018.03.13 by ChrisMare

  • Has~a관계 이용한 데이터 관리클래스 (학생성적 C++)

    2018.03.08 by ChrisMare

  • Class 관계 - Has ~ a 관계(C++)

    2018.03.08 by ChrisMare

  • 오버로딩(Overloading)

    2018.03.06 by ChrisMare

  • 간단한 학생 성적 프로그램 ver1(동적할당)

    2018.03.06 by ChrisMare

  • Single LinkedList - 간단한 성적처리 C언어

    2018.01.26 by ChrisMare

가상 함수 - virtual Function

※ 가상함수(Virtual Function) 가상함수는 어떻게 동작하는가?C++은 가상 함수들이 어떻게 동작해야 하는지를 규정하고 있다. 그러나 그것의 구현은 컴파일러 개발자의 몫이다......가상 함수를 사용하기 위해 그것이 구현된 방법을 굳이 알 필요는 없지만 그것을 알면, 가상 함수의 개념을 좀 더 잘 이해할 수 있다.그러므로 잠깐 살펴볼 필요가 있다. 컴파일러가 가상 함수를 다루는 일반적인 방법은, - 각각의 객체에 숨겨진 멤버를 하나씩 추가하는 것이다.숨겨진 멤버는 함수의 주소들로 이루어진 배열을 지시하는 포인터를 저장한다.=> 일반적으로 그 배열을 가상 함수 테이블(virtual function table ; vtbl)이라고 한다.vtbl에는, 그 클래스의 객체들을 위해 선언된 가상 함수들의 ..

C++ 언어 2018. 3. 13. 16:46

동적 바인딩(DynamicBinding)

※ 추상클래스1. 가상함수를 하나 이상 가지고 있는 클래스2. 오직 상속을 목적을 사용 (has~a관계일 때는 x -> 일반적으론 객체를 못만들기 떄문이다) ※ 동적바인딩1. 부모의 포인터로 자식을 접근하는 방식2. is~A 관계 일때만 사용가능3. 정적바인딩과 같은 결과가 나와야한다. ( 중요! )4. 부모가 인식할 수 있는 범위까지만 사용가능하다.즉, 부모만 가지고 있는 경우 또는 오버라이딩한 멤버만 접근가능.보모의 함수를 자식이 오버라이딩을 꼭 해야된다.!! 안하면 접근 X.5. 장점은 부모가 자식을 접근을 할 때 어떤 자식으로도 접근할 수 있다.=> 코드 간략!!=> 다양하게 접근할 수 있다!! (다양성) - 궁극적인 목표 예제 소스) 1234567891011121314151617181920212..

C++ 언어 2018. 3. 13. 14:03

다중 상속 시 모호성발생의 해결 방법(가상상속 처리)

※ 다중상속 시 조심해야할 점1. 상속 방식 꼭 사용 (default ->private 상속)2. 모호성발생 하는 상속 구조 시 -> 가상상속 처리!!!3. 외부에서 부모한테 값을 넘길 때 콜!!! 이러한 메모리 구조로 인해 D d;라는 것이 잇다면d.dA()를 호출 시 모호성이 발생하는데B클래스와 C클래스가 A클래스의 dA()를 가지고 있기 때문에모호성이 발생합니다!!!!따라서!! 가상상속처리 후(메모리 구조) D클래스에서 A클래스를 직접 접근하는 개념처럼 됩니다.!!!! 예제코드) 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666..

C++ 언어 2018. 3. 13. 11:29

Has~a관계 이용한 데이터 관리클래스 (학생성적 C++)

※ 학생성적관리 클래스( Data관리 클래스) - Student Score ManageMent System (SMS) Has ~a 관계 즉, --> 데이터 관리클래스를 이용해서 간단한 프로그래밍 해보기!! 그림으로 간단히 이해!! // SMS.cpp #include #include using namespace std; class Name { string name; public: //setter void setName(string name) { this->name = name; } //getter는 값을 가지고 오는것만 하기 떄문에 값변경 x // == const 사용 string getName()const { return name; } }; class Subject { int score; public: ..

C++ 언어 2018. 3. 8. 15:51

Class 관계 - Has ~ a 관계(C++)

C++의 class 관계1. has ~a (Data 와 관리 class) -> 포함 오브젝트.2. is ~a (상속 구조) -> 상속. - has ~ aData와 data들을 관리하는 클래스 즉, 포함 오브젝트인데요.... 포함 오브젝트란? Main에서 바로 A를 접근 하지를 못하기 때문에 B객체에 또다른 A객체인 aa를 가지고데이터를 접근하는 용도인 메소드를 만들어 접근한다.Main에서 객체 B를 통해서 A를 접근해서 데이터를 쓰기 때문에이 방식으로 운용한다면 캡슐화 즉, 데이터를 보호, 은닉할 수 있다. Ex1) 메소드를 통한 접근 #include #include using namespace std; class A{string name;public:void setName(string name){thi..

C++ 언어 2018. 3. 8. 13:48

오버로딩(Overloading)

Java 와 다르게 C++의 오버로딩은 암시적 오버로딩이 있다. ※ 오버로딩(Overloading) : 동일한 함수형으로 여러개의 함수를 제공하는 방법조건 : 매개변수의 타입이 달라야한다.매개변수의 갯수가 달라야한다. 리턴타입은 상관없다. 1. 명시적 오버로딩- 기능 또는 타입이 다를 때는 따로 해야되기 때문에 Java의 오버로딩과 개념이 같다!! Ex 1)#include using namespace std; void disp(int a, int b);void disp(char a, char b);void disp(float a, float b); int main(){int a = 1, b = 2;char c = 'a', d = 'b';float e = 3.2f, f = 4.7f; // 명시적 오버로딩/..

C++ 언어 2018. 3. 6. 15:43

간단한 학생 성적 프로그램 ver1(동적할당)

※ 학생성적처리 프로그램 (이름, 국어, 영어, 수학, 총점, 평균) #include using namespace std;// 정의 가시화 // 함수 선언void inputInfo(char(*name)[10], int(*score)[4], float *avg, int num); void operater(int(*score)[4], float *avg, int num); void outputInfo(char(*name)[10], int(*score)[4], float *avg, int num); int main(){int num;cout > num; //메모리 할당 및 초기화// name은 정체는 포인터인데.... // 한행당 10개짜리 char형 배열을 가지고 있다.char (*name)[10]= new..

C++ 언어 2018. 3. 6. 14:44

Single LinkedList - 간단한 성적처리 C언어

#define _CRT_SECURE_NO_WARNINGS#include #include #include const char scoName[5][10] = { "Kor","Eng","Mat","Total","Avg" }; typedef struct card {char name[10];int score[4];float avg;struct card *next;// 다음 노드를 가르키는 용도}Card; void newNode(Card **new1);void InsertNode(Card **head, Card **new1, Card **cur);void deleteNode(Card **head, Card **cur, Card **del);void modifyNode(Card **head, Card **cur);v..

자료구조 2018. 1. 26. 17:56

추가 정보

인기글

최신글

페이징

이전
1 ··· 6 7 8 9 10 11
다음
TISTORY
미래를 설계하는 개발자 © Magazine Lab
페이스북 트위터 인스타그램 유투브 메일

티스토리툴바

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.