'Language'에 해당되는 글 14건

Eclipse .class 파일 build path 에 추가할 때

Language/Java Language

"util.*" 라는 패키지내에 class파일들을 프로젝트에 import 하기 위해서 다음과 같은 잘못된 경로를 import했다.


Properties-Java Build Path-libraries-Add Class Folder

를 선택 한 후 util/ 폴더를 추가했고, 제대로 동작하지 안핬다.


이유는 class 폴더로 임포트 하는 대상 경로의 util/ 패키지내에 존재 해야하므로 한단계 상위 루트가 존재해야 한다.

따라서 classes 라는 폴더를 만들어서 "classes/util/" 이라는 경로에 위치시키고, "classes/" 를 class 폴더로 지정하니 정상적오르 동작했다.



Reference: http://stackoverflow.com/questions/661110/how-do-i-include-class-files-in-my-project-in-eclipse-java

'Language > Java Language' 카테고리의 다른 글

중첩 클래스(Nested Class)  (0) 2011.02.11
Promotion, Casting  (2) 2011.02.11

객체 2차원 동적배열 선언

Language/C++ Language
tran_arraies = new transition_array*[max_prime_index];
for(int i = 0 ; i < max_prime_index ; i++) {
	tran_arraies[i] = new transition_array(prime_number[k]);
}

자바에 너무 익숙해져있어서 2차원 동적배열에서 디폴트생성자를 이용하지 않고 만드는 것에서 고생했다.

걍 객체에 포인터로 원하는 만큼 배열을 생성해놓고

반복문으로 돌아가면서 다시 원하는 만큼 배열을 생성하면 된다.

사실 위의 예제는 n*1의 배열인데, 런타임에 동적으로 배열을 임의의 크기로 생성하고 생성자도 원하는 값으로 넣어주기 위함이다.

'Language > C++ Language' 카테고리의 다른 글

Sort() 함수를 사용하기  (0) 2011.11.20
Encapsulation  (0) 2011.10.18
Vector(STL library) call by reference  (0) 2011.05.27
VISUAL STUDIO에서 배열포인터 조사식 보는방법  (1) 2011.05.14
#pragma once  (0) 2011.04.08

Sort() 함수를 사용하기

Language/C++ Language
Compare함수를 구현한다.
return 형은 bool 이다.

만약 멤버함수로 compare 가 정의될 때, 반드시 static 멤버 함수로 정의되어야 한다.

예를 들어 아래와 같다.

static bool nameCompare(Item& lhs, Item& rhs); 

void main()
{
...
list.sort(nameCompare); 
...


위와 같이 사용하면 된다. 

'Language > C++ Language' 카테고리의 다른 글

객체 2차원 동적배열 선언  (0) 2013.11.14
Encapsulation  (0) 2011.10.18
Vector(STL library) call by reference  (0) 2011.05.27
VISUAL STUDIO에서 배열포인터 조사식 보는방법  (1) 2011.05.14
#pragma once  (0) 2011.04.08

Encapsulation

Language/C++ Language

일반적으로 캡슐화는 어떤 하나를 다른 것에 포함시킴으로써, 포함된 것이 외부에서 보이지 않도록 하는 것이다. 반대로, 캡슐 해제는 이를 제거하거나, 또는 캡슐화되기 이전의 것을 보이게 하는 것이다.

  1. 객체지향 프로그래밍에서, 캡슐화는 객체와 기능, 즉 메쏘드와 데이터 등을 위해 필요한 모든 자원을 프로그램 객체 내에 포함시키는 것이다. 그 객체는 자신의 인터페이스들을 외부에 널리 알림으로써, 다른 객체들은 그 객체가 그 일을 어떻게 수행할 지에 대해 전혀 알지 못하더라도, 단지 인터페이스만을 통해 그 객체를 사용할 수 있다. 이는 마치 "네가 그것을 어떻게 하는지는 말하지 말고, 그저 나를 위해 그것을 해줘"라는 식으로, 사용자에게는 어떤 일을 수행하는지의 기능에 대한 인터페이스만을 제공하며, 내부에서 일어나는 일은 숨긴다. 각각의 객체는 하나의 독립적인 원자라고 생각할 수 있으며, 객체 인터페이스는 전역 메쏘드들과 인스턴트 데이터로 이루어져있다.
  2. 통신에서의 캡슐화는, 다른 구조 속에 포함된 하나의 데이터 구조로서, 일정시간동안 첫 번째 데이터 구조가 감추어진다. 예를 들어, 하나의 TCP/IP 형식의 데이터 패킷은 다른 종류의 전송데이터 단위인 ATM프레임 속에 캡슐화될 수 있는데, ATM 프레임이 송수신 되는 상황 속에서, 캡슐화된 패킷은 단지 ATM 데이터들 사이의 비트 스트림으로 간주될 뿐이다.



     
reperenced by 
http://terms.co.kr/encapsulation.htm

'Language > C++ Language' 카테고리의 다른 글

객체 2차원 동적배열 선언  (0) 2013.11.14
Sort() 함수를 사용하기  (0) 2011.11.20
Vector(STL library) call by reference  (0) 2011.05.27
VISUAL STUDIO에서 배열포인터 조사식 보는방법  (1) 2011.05.14
#pragma once  (0) 2011.04.08

Vector(STL library) call by reference

Language/C++ Language

void loadFile(char *path, vector  &node) {
	...
}

'Language > C++ Language' 카테고리의 다른 글

Sort() 함수를 사용하기  (0) 2011.11.20
Encapsulation  (0) 2011.10.18
VISUAL STUDIO에서 배열포인터 조사식 보는방법  (1) 2011.05.14
#pragma once  (0) 2011.04.08
Dynamic Programming Binomial Coefficient의 구현  (0) 2011.03.30

VISUAL STUDIO에서 배열포인터 조사식 보는방법

Language/C++ Language

배열을 디버깅할 때 처럼 보이게 할 수 있다.

int *arr = new arr[16];

위와같이 선언된 배열포인터를 디버깅할 때 참조하기 위해서는 조사식에 아래와 같이 쓰면 된다.

arr, 16

그러면 배열을 디버깅 상태에서 보듯이 똑같은 방식으로 보이게 된다.

'Language > C++ Language' 카테고리의 다른 글

Sort() 함수를 사용하기  (0) 2011.11.20
Encapsulation  (0) 2011.10.18
Vector(STL library) call by reference  (0) 2011.05.27
#pragma once  (0) 2011.04.08
Dynamic Programming Binomial Coefficient의 구현  (0) 2011.03.30

#pragma once

Language/C++ Language

#pragma once 는 C의 헤더 파일 최상단에서 자주 볼 수 있는데, 컴파일러에게 해당 헤더 파일이 한번만

빌드되도록 알려주는 명령이다. 즉, 여러번 인클루드 되는 것을 컴파일러 차원에서 막아주게 된다.

예를 들어, A.h라는 파일이 여러 곳에서 복잡하게 #include 되어 쓰이게 된다면 그때마다 가각 정의가

추가되게 되어 중첩되는 경우가 생긴다. 이 경우 중복 정의되었다는 에러가 발생하게 된다.

즉, 같은 내용이 여러번 빌드되게 되는 것을 막기위해 #pragma once 를 사용하는 것이다.

Dynamic Programming Binomial Coefficient의 구현

Language/C++ Language
int bin(int n, int k)
{
	int **B;
	B = new int*[n+1];
	for(int i=0 ; i<=n ; i++)
	{
		B[i] = new int[k+1];
	}

	for(int i=0 ; i<=n ; i++) 
	{
		for (int j=0 ; j<= i ; j++)
		{
			if(j==0 || j==i) 
			{
				B[i][j]=1;
			}
			else
			{
				B[i][j]=B[i-1][j-1] + B[i-1][j];
			}
		}
	}
	return B[n][k];
}

'Language > C++ Language' 카테고리의 다른 글

Sort() 함수를 사용하기  (0) 2011.11.20
Encapsulation  (0) 2011.10.18
Vector(STL library) call by reference  (0) 2011.05.27
VISUAL STUDIO에서 배열포인터 조사식 보는방법  (1) 2011.05.14
#pragma once  (0) 2011.04.08

QuickSort

Language/C Language

int partition(int theList[], int start, int end)
{	int pivot = theList[end];                                       
    int bottom = start-1;                                                   
    int top = end;                                                           
    bool notdone = true;
    while (notdone)
	{
        while (notdone)
	{
            bottom += 1;                  
            if (bottom == top)   
	    {
                notdone = false;                        
                break;
	    }
            if (theList[bottom] > pivot)   
	     {
                theList[top] = theList[bottom];       
                break;
	     }
	}  
	while (notdone)
	{
            top = top-1;                      
            
            if (top == bottom) 
	    {
                notdone = false;                      
                break;
	     }
            if (theList[top] < pivot)
	    {   
                theList[bottom] = theList[top];
		break;
	     }      
	}
    }
    theList[top] = pivot;                          
    return top;
}//Actual function call within program
int quickSort(int theList[], int start, int end)
{	if (start < end)     
	{
             int split = partition(theList, start, end);   //recursion   
             quickSort(theList, start, split-1);         
             quickSort(theList, split+1, end); 
	}
        else
	{
             return 0;
	}
}

'Language > C Language' 카테고리의 다른 글

2-Way Merge Sort  (0) 2011.03.22
매크로 가드(Macro Guard)  (0) 2011.02.13
Hello world!  (0) 2011.02.07

2-Way Merge Sort

Language/C Language
void mergeSort(int numbers[], int temp[], int array_size)
{
  m_sort(numbers, temp, 0, array_size - 1);
}
 
 
void m_sort(int numbers[], int temp[], int left, int right)
{
  int mid;
 
  if (right > left)
  {
    mid = (right + left) / 2;
    m_sort(numbers, temp, left, mid);
    m_sort(numbers, temp, mid+1, right);
 
    merge(numbers, temp, left, mid+1, right);
  }
}
 
void merge(int numbers[], int temp[], int left, int mid, int right)
{
  int i, left_end, num_elements, tmp_pos;
 
  left_end = mid - 1;
  tmp_pos = left;
  num_elements = right - left + 1;
 
  while ((left <= left_end) && (mid <= right))
  {
    if (numbers[left] <= numbers[mid])
    {
      temp[tmp_pos] = numbers[left];
      tmp_pos = tmp_pos + 1;
      left = left +1;
    }
    else
    {
      temp[tmp_pos] = numbers[mid];
      tmp_pos = tmp_pos + 1;
      mid = mid + 1;
    }
  }
 
  while (left <= left_end)
  {
    temp[tmp_pos] = numbers[left];
    left = left + 1;
    tmp_pos = tmp_pos + 1;
  }
  while (mid <= right)
  {
    temp[tmp_pos] = numbers[mid];
    mid = mid + 1;
    tmp_pos = tmp_pos + 1;
  }
 
  for (i=0; i <= num_elements; i++)
  {
    numbers[right] = temp[right];
    right = right - 1;
  }
}

'Language > C Language' 카테고리의 다른 글

QuickSort  (0) 2011.03.23
매크로 가드(Macro Guard)  (0) 2011.02.13
Hello world!  (0) 2011.02.07