소프트웨어
java에서 interface란?
어 블로그를 보다보니 callback 구현하는데 2가지 방법이 있는데 그 중 하나가 인터페이스라고 하였습니다.하지만 interface를 어떻게 구현하고 사용하는지 몰라서 이해를 못하다가 그냥 callback과 별도로 이것부터 집고 넘어가기록 했습니다. 책에서 소개된 인터페이스는 '죽음의 다이아몬드 때문에 생기는 부작용들을 다중 상속의 다형적인 장점으로 다중상속문제를 해결해준다고 합니다. 인터페이스에 대해서 쉽게 이야기를 하자면,인터페이스는 보통 클래스에 public과 abstrac가 붙은 형태입니다.따라서 interface로 구현된 함수들은 extends한 클래스에서 재정의하여 사용해야 합니다. 인터페이스를 정의하는 방법은 아래와 같습니다.public interface Cup {...} 인터페이스를 구현..
함수의 괄호 뒤에 const를 넣는 이유에 대해서
여기 저기 검색을 해보니 함수 괄호 뒤에 const를 넣는 의미는, 멤버 변수의 값을 변경하지 않는다. 라는 의미라고 하더라구요(그리고 함수 괄호 뒤에 const를 넣는 함수는 멤벼함수일때만 가능하다고 하네요.) 간단한 실험을 준비해봤습니다. 1. 아래의 코드는 잘 실행되는 코드입니다. #include #include using namespace std; class Tester { private: char m_data[24]; public: void setData(char *input) { strcpy(m_data, input); } const char* getData() const { return m_data; } }; int main() { Tester test; test.setData((char*)..
[펌] C 프로그래밍 문자열 비교 함수 (strcmp())
출처 : http://ra2kstar.tistory.com/85 C 프로그래밍 문자열 비교 함수 (strcmp()) 두 문자열을 비교하기 위해서 어떻게 하면 될까. JAVA의 경우 equals() 를 이용하면 true, false 값을 얻어 올 수 있지만.. c 에서도 그런 것이 있을까? 물론 C에서도 두 문자열을 비교하는 함수는 존재하며, 그 종류도 다양한다. strcmp() 기능 두 문자열을 비교 기본형 int strcmp(const char *s1, const char *s2);s1 : 문자열s2 : 문자열 반환값 s1>s2 : 양수 , s1==s2 : 0 , s1s2 : 양수 , s1 == s2 : 0 , s1s2 : 양수 , s1 == s2 : 0 , s1s2 : 양수 , s1 == s2 : 0..
jni는 객체 당 하나씩 생성되는 것일까??
상황:class A 가 존재할 때,A a;A b;이 두개의 jni속의 int 값을 변화를 줄 때, 어떻게 변할까?? 갖고 있는 것 : A.java A.cpp class Good { static { System.loadLibrary("Good"); } native public Good get(); native public void setData(int data); native public int getData(); public void test() { System.out.println("GAOL!!!"); } } class GoodRun { public static void main(String[] args) { System.out.println("test start"); Good go1 = new Goo..
jni에서 java 클래스 주소 return하기
상황 ; jni에서 클래스에 해당하는 레퍼런스(객체)가 있는가?그러니깐, jni에서 return 받은 값으로 내가 예상하는(원하는) 객체로 캐스팅을 하여서바로 사용할 수 있닌지. Java:class Good; cpp:Good.cpp 결론은 가능하다.(jobject를 반환하면 된다.) class Good { static { System.loadLibrary("Good"); } native public Good get(); public void test() { System.out.println("GAOL!!!"); } } class GoodRun { public static void main(String[] args) { System.out.println("test start"); Good go = new ..
printf에서 %d %09d %19d의 차이에 대해서
%d는 int 형을 출력하는 것인데, %와 d사이에 여러 옵션을 넣을 수 있다. 그중에 아래의 것들을 살펴본다. #include int main(int argc, char *argv[]) { int num = 123456; printf("%09d\n",num); printf("%9d\n",num); printf("%19d\n",num); printf("%d\n",num); return 0; } output은000123456 123456 123456123456 이다.
[c++] snprintf, sprintf 예제
sprintf는 문장, 혹은 하나의 버퍼를 타겟 버퍼에 그대로 복사를 하는 것이고, snprint는 크기를 정한 후 복사하는 것이다. #include #include int main(int argc, char* argv[]) { /* sprintf example */ char buf[256]; int len; int i; len = sprintf(buf, "Hello,\n"); for (i=0;i
2차배열 동적 할당, 교환하기 등.
아래 블로그를 참조하였습니다.http://gshan85.tistory.com/34 요약 : 2차 배열로 생성하고, 1차 배열을 덮어 씌우는데, 그 1차배열은 할당, 삭제가 가능하다. #include #include using namespace std; void swap( char **tmp ) { for( int i=0;i