예제

    C++에서 클래스를 지역변수로 만들면서 constructor호출하기

    C++에서 클래스를 지역변수로 만들면서 constructor호출하기

    그동안은 class의 constructor를 사용하기 위해서 동적할당을 사용하곤 했습니다.지역변수를 선언할 때 constructor를 부르는 생각 조차 못했었죠. 그런데 회사에서 팀장님이 코드리뷰를 해주시면서 알려주셨습니다. 아주 간단한 방법이더라구요 코드입니다. #include class Test { public: Test() { } Test(int data) { printf("Init data : %d\n", data); } }; int main() { Test test(4); return 0; } 결과 : Init data : 4

    java Thread 모양 익히기. 2가지 종류(예제, 코드)

    java로 threadPool을 만들기 전에 잠시 thread에 대한 기본적인 모양을 익히고 간다.(c++로 thread pool의 로직은 알고 있으나 java에선 어떻게 동작하는지 모르겠다.) class AAA extends Thread { public void run() { System.out.println("Here is AAA class"); } } class BBB implements Runnable{ @Override public void run() { System.out.println("Here is BBB class"); } } public class ThreadEx { public static void main(String[] arg) { AAA ap = new AAA(); Thread ..

    상속에 대해서

    상속에 대해서 보다가 궁금한게 생겼다. virtual 함수를 선언할 때 {] 뒤에 ;가 있는 것과 없는 것이 차이가 존재할까? 결론은 차이가 없다이다. (적어도 내 컴파일러는 동일하게 동작하였다.) #include class Test { public: virtual void render() {} virtual void draw() {}; }; class Exam : Test { public: void render() { printf("This is render() \n"); } void draw() { printf("This is draw() \n"); } }; int main(int argc, char *argv[]) { Exam ex; ex.draw(); ex.render(); return 0; }

    java/자바 에서 call back에 대해서 공부해보기 -2

    java/자바 에서 call back에 대해서 공부해보기 -2 1. 목적 callback 예제를 작성해보고 사용 방법을 이해해보자. callback을 사용하는 방법을 알게되었다. 1. 환경 셋팅 java, ubuntu 14.04 1. Source CallbackServer.java public class CallbackServer { public void sayHello(String s, CallbackImpl c) { if( s.equals("ENGLISH")) c.speakEnglish(); else if( s.equals("KOREAN")) c.speakKorean(); } } CallbackImpl.java public class CallbackImpl { int a=0; public void g..

    함수의 괄호 뒤에 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*)..

    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 ..

    c++, stack size 조절하기

    이 소스를 찾았던 이유 : jni에서 JNI_CreateJavaVM이 되지 않아서. 그래서 기본 stack의 크기를 늘리면 될까봐. 기존의 stack의 크기를 받아와서 확인 후 다시 설정을 하는 것이다. #include #include using namespace std; void main() { size_t thr_stack_size; pthread_attr_t attr; pthread_attr_init(&attr); pthread_attr_getstacksize(&attr, &thr_stack_size); cout

    [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