728x90

연산자 오버로딩

- 기본 연산자의 기능을 객체에도 적용

- 연산자를 중복해서 정의하는 것

- 고유 연산자 기능 외에 사용자가 정의한 기능을 연산자로 실행하게 하는 것

 

[장점]

연산자 고유의 의미를 유지할 수 있다.

간략한 표기가 가능하다.

 

형식

리턴형 operator 연산자(매개변수들..)

 

오버로딩이 가능한 연산자

사칙연사자외 비교연산자 등등.. 거의 모든 연산자

 

오버로딩이 불가능한 연산자

::(범위 지정 연산자)

.(멤버 접근 연산자 dot), (.*), (?:), (sizeof)

 

오버로딩 예

1)이항 연산자인 사칙 연산자(+,-,*,/)

 

 

2)단항 연산자인 증가 연산자 ++를 오버로딩한 예

전치형 operator++() {}

후치형 operator++(int m) {} // 여기서 int m은 아무 의미 없음 그냥 임시변수 생성이름

 

 

 

 

 

 

함수 오버로딩
함수호출 시 전달된는 인자를 통해서 호출하고자 하는 함수의 구분이 가능하기 때문

 

 

 

 

'…™업무일지。 > …™C++。' 카테고리의 다른 글

※인라인(inline) 함수 -작업중-  (0) 2014.10.15
※함수인자 디폴트  (0) 2014.10.15
5강 클래스(class)  (0) 2014.10.13
4강 메모리 할당과 해제  (0) 2014.10.12
입출력 namespace :: 스코프 연산자  (0) 2014.10.12
728x90

클래스(Class)

- 사용자 정의 타임(Type)이다

- 변수와 함수로 이뤄져 있다.

- 멤버(member)

- class 키워드

- class를 선언하면 객체(object)가 된다.

- struct는 C++에서는 class이다.

 

class 형식

 class 클래서명

{

     멤버 리스트(변수와 함수)

};

 

class 사용 예

 

1. 멤버 변수 

#include <iostream>
using namespace std;

 

class smart

{

   int X;

   int Y;

};

2. 멤버 함수 

 #include <iostream>
using namespace std;

class smart
{
   int X;
   int Y;

   void Print()
   {
        cout<<X<<'\t'<<Y<<endl; 
   }
};

3. 멤버 함수 를 분리하는 예 -> 클래스 내용이 방대 해 질때 :: 스코프 연산사를 사용 함수를 분리 하는 방법

 #include <iostream>
using namespace std;

class smart
{
   int X;
   int Y;

};

void smart::Print()  // 스코프 연산자를 사용해서 함수의 소속을 구분하여 선언
   {
        cout<<X<<'\t'<<Y<<endl; 
   }

 ♣ class 선언(객체 생성) 

- class가 선언되었을 때 객체라고 한다.

- class는 사용자 정의 타입이므로 일반 변수

   또는 포인터 선언과 같은 형식을 사용한다.

 #include <iostream>
using namespace std;

class smart
{
   int X;
   int Y;

};

void smart::Print()  // 스코프 연산자를 사용해서 함수의 소속을 구분하여 선언
   {
        cout<<X<<'\t'<<Y<<endl; 
   }

 

int main()

{

 

}

 

 

 

 

'…™업무일지。 > …™C++。' 카테고리의 다른 글

※함수인자 디폴트  (0) 2014.10.15
※ 함수 오버로딩  (0) 2014.10.15
4강 메모리 할당과 해제  (0) 2014.10.12
입출력 namespace :: 스코프 연산자  (0) 2014.10.12
C++ 언어의 데이터형과 변수  (0) 2014.10.11
728x90

 

RFID 구동 ver1_0a.docx

 

RFID 구동 ver1_0a.pdf

 

 

 

'…™업무일지。 > …™RFID。' 카테고리의 다른 글

RFID시리얼통신 ver1_1a  (0) 2014.10.21
728x90

메모리 할당 및 해제 비교 

 구분

 메모리 할당

 메모리 해제

 C언어

 malloc()

 free()

 C++언어

 new

 delete

 

고정 메모리 : 변수, 배열,

동적 메모리(heap 메모리) :heap 영역을 사용 

 

변수 : 상수 / 메모리 주소 : 일반변수 / 포인터 변수 *

 

이중 포인터: 메모리 주소를 저장 하는 포인터   

 

newdelete의 대상

1. 포인터, 객체 

2. new로 생성한 것은 반드시 delete로 해제

3. new로 메모리 할당이 실패하면 0 리턴

4. 널 포인터를 delete해도 상관없다.

 

new의 형식 

 1. new type

 int *ptr;

 ptr = new int;

  

 2. new type(초기화

 int *ptr;

 ptr = new int(12);

 

 3. new type[개수]

 int *ptr;

 ptr = new int[7];

  

delete 형식 

 1. delete 포인터 변수

 int *ptr;

 ptr=new int;

 delete ptr;

 

 2. delete [] 포인터 변수

 int *ptr;

 ptr=new int[12];

 delete [] ptr;

 

예제들

1. 포인터

 

 

2. 이중 포인터 : 배열의 행열 갯수가 가변적일 때 쓰임

 

 

3. 포인터 배열 :

행이 일정하고 열만 가변

 

 

4. 배열 포인터 :

행은 가변 열은 고정

 

 

 

5. 구조체 포인터

 

 

 

 

 

 


 

 

'…™업무일지。 > …™C++。' 카테고리의 다른 글

※ 함수 오버로딩  (0) 2014.10.15
5강 클래스(class)  (0) 2014.10.13
입출력 namespace :: 스코프 연산자  (0) 2014.10.12
C++ 언어의 데이터형과 변수  (0) 2014.10.11
정보 은닉, 구성과 상속 개념  (0) 2014.10.07
728x90

namespace

-  심볼(변수, 함수, 클래스)의 유효(소속) 범위를 설정

:: 스코프 연산자 로 심볼의 소속을 나타낸다.

(범위 확정 연산자, the scope-resolution operator)

-  같은 이름의 심볼을 구분한다. -> 충돌 방지

 

형식

namespace identifier

{

[declaration-list]

}

 

 

 

 

 

 

cout   출력 (std namespace에 속해 있는 클래스)

<< 연산자(insertion operator)

cout로 바이트 단위로 데이터를 보내는 역할

 

cout<<변수 또는 상수

endl   cout에서 는 개행문자(\n)와 같음

 

 

 

cin>>변수1>>변수2>>변수3;

>>연산자(추출 연산자, extraction operator)

입력된 데이터를 바이트 단위로 가져오는 역할

 

한 문자를 입력 하는 방법

>> 추출 연산자를 이용하는 방법

 

cin.get(cVal); 함수를 이용한 방법

 

문자열을 입력하는 방법

string 문자열 및  getline(cin,변수이름)

- #include <string> // header 파일에 선언

 

 

 

 

 

728x90

1. 데이터형

 

- 부울형:bool

-> 1 byte, false(0), true(1)

* 0과 1 보다는 false 또는 true 를 많이 쓴다.

true(1): 0이 아닌 모든수 예) -1, 7

false(0): 0인 수

 

 

- 문자형:char

- 정수형: int, short, long

- 부동소수점 실수형:float, double

 

- 열거형:enum

 

 

 

- 구조체형:struct

 

 

-void형:함수의 반환값이 없는 것을 명시

타입을 모르는 포인터형을 사용할 때

 

 

 

 

728x90

정보 은닉 방법

구성 과 상속 개념

구성: 분리가 가능(클래스 안에 다른 클래스를 가져오는 형태)

상속: 분리가 안됨

 

 

 

생성자 참조 사이트: http://pacs.tistory.com/entry/C-%EC%83%9D%EC%84%B1%EC%9E%90%EC%99%80-%EC%86%8C%EB%A9%B8%EC%9E%90-Constructor-Destructor-%EC%B2%AB%EB%B2%88%EC%A7%B8

생성자(Constructor)

1.반화형이 없다. 2.인자는 선택적  3.클래스 와 동일 이름

필요성: 객체를 생성과 동시에 초기화를 해주기 위해 필요

예제

 

 #include <iostream>
using namespace std;

class Smart
{
 public:
 int * ip;
 
 Smart() //  생성자는 1.반화형이 없다. 2.인자는 선택적  3.클래스 와 이름이 같다.
 {
 
 }

 void print()
 {
  cout<<" "<< <<endl;
 }
  
}

int main()
{
  
 Smart obj1;
 Smart obj2;
 Smart obj3;

 obj1.ip=0;
 obj2.ip=0;
 obj3.ip=0;

 obj1.print();

 return 0;
}

// 생성자:

 

 

 

복사 생성자(Constructor)

다른 객체로 부터 값을 복사해서 초기화 하는데, 사용

자신과 동일한 타입의 객체에 대한 레퍼런스를 인자로 받는 생성자

인자값에 const를 써준 이유: 값에 의한 전달보다는 상수 객체 참조자에 의한 전달하는 편이 낫다.

 

 

728x90

 

 

728x90

Atmel사 홈피에서  가져옴 

8bit avr_CPU c 코드 최적화 방법(Atmel 제공).pdf

 

'…™업무일지。 > …™ATMEGA128A。' 카테고리의 다른 글

AVR studio 사용법  (0) 2014.11.18
[WinAVR설치하기][RISC와CISC] ver1_0b  (0) 2014.11.18
ATmega128 datasheet  (0) 2014.04.20
AVR 기초강좌  (0) 2014.04.18
AVR 기본강좌  (0) 2014.04.18
728x90

 

0904-WIN API 시작하기 ver1_0a.docx

 

0904-WIN API 시작하기 ver1_0a.pdf

 

 

 

 

 

'…™업무일지。 > …™WINAPI。' 카테고리의 다른 글

Win32 API 프로그램 작성 순서 6단계  (0) 2014.10.21
Win32 API 기초정리  (0) 2014.10.20
▶Win32 API 주요 함수  (0) 2014.10.17
※ WINAPI 기본형  (0) 2014.10.15
BITMAP and 영상출력 참고 사이트  (0) 2014.09.25