게임2014. 3. 15. 23:35
예전에 험블로 산건데
은근히 재미있다.

그런데.. 어렵다!!!
역시 인간이란 -_-
탐욕의 동물이라 좀 발전한다 싶으면 전쟁걸고!!! 

 

'게임' 카테고리의 다른 글

Need for Speed hot pursuit 트리플 모니터  (0) 2014.06.06
JASF 만세? ㅋㅋ  (0) 2014.06.04
HOARD 재미있네?  (0) 2014.03.09
bio shock 시리즈 한글 패치  (0) 2014.03.08
피망 블레스  (0) 2014.02.12
Posted by 구차니
Programming/C++ STL2014. 3. 15. 17:04
struct에서 변수값 주던가?
즉, class 역시 struct로 구현되기에 class 에 실제 값을 넣어줄 수 없다.

cpp는 c의 확장형이기에
멀 하던 c를 잊을수가 없네 ㅠㅠ 

아무튼 이렇기에
cpp class는 생성자에서 값을 초기화 하고
const형의 경우에는 member initialize list를 통해서 초기화 해주도록 한다. 

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

cpp static 변수 및 메소드  (0) 2014.03.18
cpp scope 연산자  (0) 2014.03.18
cpp 와 java의 차이점(문법)  (0) 2014.03.14
cpp 디폴트 매개변수  (0) 2014.03.12
c -> cpp 추가사항  (0) 2014.03.10
Posted by 구차니
Programming/Java2014. 3. 14. 21:11
class를 객체로 생성하지 못하도록 막는게 private 생성자이다.
어떻게 보면 객체를 생성하지 못하게 하나 싶긴한데...
static method들로 도배되어 굳이 생성될 필요가 없는 클래스라면 아예 객체 생성을 막는 것도 방법이긴 하니까..

 The declaration of the empty constructor prevents the automatic generation of a default constructor. Note that if you do not use an access modifier with the constructor it will still be private by default. However, the privatemodifier is usually used explicitly to make it clear that the class cannot be instantiated.
 

[링크 : http://msdn.microsoft.com/en-us/library/kcfb85a6.aspx
Posted by 구차니
개소리 왈왈/컴퓨터2014. 3. 14. 18:39
개인서버이니 다운로드 필요하면 확인 필요.

[링크 : http://cafe.naver.com/umid/16100]
    [링크 : http://djj.iptime.org:81/download/Mbook/]

'개소리 왈왈 > 컴퓨터' 카테고리의 다른 글

엠북 180도 펼치기 개조  (0) 2014.03.26
umid mbook m1 배터리 교체  (2) 2014.03.19
umid mbook m1 lcd 구매 + 분해기  (0) 2014.03.12
생일선물? ㅋㅋ  (2) 2014.02.01
DVD+R DL로 구운 뒷면  (0) 2014.01.30
Posted by 구차니
파일방2014. 3. 14. 18:38
apache의 index 페이지는 좀 지저분한데
깔끔하게 다운로드 전용으로 가볍게 사용할 만한 녀석

[링크 : http://larsjung.de/h5ai/]

'파일방' 카테고리의 다른 글

decompiler  (0) 2014.05.21
의사랑 설치방법 및 SyBase  (0) 2014.04.25
에이콘출판사 링크  (2) 2013.12.12
스케치업  (0) 2013.09.06
startrail - 일주사진 합성 프로그램  (0) 2013.08.13
Posted by 구차니
Programming/Java2014. 3. 14. 16:45
abstract는 class이기에 extends로 상속받아 쓰지만
interace는 class가 아니고 impletement로 확장하기 위한 껍데기 이기에 다른 클래스를 상속받을 수 있다.
[링크 : http://silverktk.tistory.com/134]
[링크 : http://alloe.tistory.com/80]

cpp에서는 interface(java)처럼 구현을 강제하기 위해 virtual 키워드를 사용할 수 있다.
[링크 : http://stackoverflow.com/questions/12854778/abstract-class-vs-interface-in-c

--
interface 내에서는 전부 abstract method이기에
abstract 키워드 생략

단, abstract class에서는 일반 method도 있으므로
abstract 키워드 생략 불가
---

An interface can extend multiple interfaces.
A class can implement multiple interfaces.
However, a class can only extend a single class.
Careful how you use the words extends and implements when talking about interface and class.

[링크 : http://docs.oracle.com/javase/specs/jls/se7/html/jls-9.html] 
Posted by 구차니
Programming/C++ STL2014. 3. 14. 00:11
이런거 비교가 의미가 있나 싶긴 하지만..


클래스 멤버 변수
cpp - const static 외에는 class 멤버 변수에 값을 주고 클래스를 생성할 수 없다. 
error C2864: 정적 상수인 정수 계열 데이터 멤버만 클래스 내부에서 초기화될 수 있습니다.
[링크 : http://msdn.microsoft.com/ko-kr/library/acxkb76w.aspx ] 

동적 바인딩
cpp - 자바처럼 작동 시키려면 오버로딩시 virtual로 선언하여야 함
java - 오리지널 객체의 형을 추적함

클래스 메소드와 클래스 멤버 변수명의 중복
cpp - 식별자로서 변수와 메소드의 중복 허용하지 않음
java - 동적 바인딩(?)으로 인해 구분이 가능하므로 멤버 변수와 멤버 메소드가 동일한 명칭이 가능함 

가변인자 
cpp - 타입에 민감하지 않아 ... 로 선언되는 가변인자에 다양한 타입을 받을 수 있음
java - JDK1.5 이후 지원하며 타입대로만 입력을 받아야 함

Abstract, interface(implement) vs virtual
cpp - virtual 키워드를 통해 상속받는 쪽에서 오버라이드를 강요하도록 사용함
java  - 다중상속의 잇점을 누리기 위해 java에서는 interface를 제공함

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

cpp scope 연산자  (0) 2014.03.18
cpp class에서 변수값을 미리 선언 못하는 이유  (0) 2014.03.15
cpp 디폴트 매개변수  (0) 2014.03.12
c -> cpp 추가사항  (0) 2014.03.10
오버로딩 / 오버라이딩  (0) 2014.03.10
Posted by 구차니
Programming/Java2014. 3. 13. 21:59
cpp 에서 virtual 로 테스트 해본건 아니라 확인이 필요함

class Parent {
String msg = "Parent 클래스";
public String getMsg() {return msg;}
}

class Child extends Parent {
String msg = "Child 클래스";
public String getMsg(){return msg;}
}

public class OverridingEx {

public static void main(String[] args)
{
// TODO Auto-generated method stub
Child cd = new Child();
System.out.println("cd : " + cd.getMsg());

Parent pt = new Child();
System.out.println("pt : " + pt.getMsg());

Parent ct = new Parent();
System.out.println("ct : " + ct.getMsg());
}
} 

결과는 cpp에서 하던 것과는 좀 다르게
Child() 객체를 Parent의 형으로 변환해주어도 실제 객체는 Parent로 인식하는 것이 아닌 Child로 인식을 한다.
cd : Child 클래스
pt : Child 클래스
ct : Parent 클래스 

이는 자바의 동적 바인딩(Dynamic binding)으로 인해
객체의 원형을 추적하여 원래 연결되어야 할 메소드를 호출하기 때문이다. 

[링크 : http://slsjyh.blog.me/30111917680]



+
기억이 잘 나지 않아 vs2008/cpp g++/cpp로 포팅 후 돌려보았는데
결과가 다르게 나왔다. 아무래도 타입에 따라서 형을 추적하는 수준에는 자바와 cpp에는 차이가 있어 보인다.

#include < iostream >
#include < string >

using namespace std;

string pmsg = "Parent 클래스";
string cmsg = "Child 클래스";

class Parent {
public:
	string getMsg()	{return pmsg;}
};

class Child:Parent {	
public:
	string getMsg()	{return cmsg;}
};

class OverridingEx {
public:
	static void main()
	{
		// TODO Auto-generated method stub
		Child *cd = new Child();
		cout << "cd : " + cd->getMsg() << endl;

		//Child *t = new Child();
		//Parent *pt = (Parent *)t;
		Parent *pt = (Parent *)(new Child());
		cout << "pt : " + pt->getMsg() << endl;

		Parent *ct = new Parent();
		cout << "ct : " + ct->getMsg() << endl;
	}
} ;

int main(int argc, char **argv)
{
		OverridingEx ex;// = new OverridingEx();
		ex.main();

        return 0;
}

cd : Child 클래스
pt : Parent 클래스
ct : Parent 클래스  

하지만 virtual로 가상함수를 만들어 오버로딩 시키면
java와 같이 제대로 동적 바인딩을 통해 실행을 할 수 있다.
class Parent {
public:
virtual string getMsg() {return pmsg;}
};

class Child:Parent {
public:
virtual string getMsg() {return cmsg;}
}; 

cd : Child 클래스
pt : Child 클래스
ct : Parent 클래스 

+
2013.03.14 추가
동적 바인딩은 인스턴스 변수와 스태틱 메소드에 대해서는 적용되지 않는다.
[링크 : http://haneulnoon.tistory.com/90]

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

java private constructor  (0) 2014.03.14
java abstract / interface & cpp virtual  (0) 2014.03.14
Java for문 내 변수는 매번 초기화 된다.  (0) 2014.03.13
Java array  (0) 2014.03.13
java string.intern()  (0) 2014.03.12
Posted by 구차니
프로그램 사용/eclipse2014. 3. 13. 19:52
eclipse로 java 공부하다 이상한 현상을 발견 -_-
public class Test {
public static void main(String args[])
{
for(String s: args)
System.out.println(s);
}
} 

 argument에 인자로 *을 넣어주면


이런게 나온다. 아마도 실행관련 설정이 eclipse에서 *과 치환되는거 같긴한데..
어떤 이유로 어디서 치환된건지 모르겠네...
.classpath
.project
.settings
bin
doc
src 


2014.05.08 추가
이클립스 버그이거나 JVM 문제일 것으로 생각된다.
2009년도에 있던 버그로 잠시 사라졌다 다시 부활.. -_-a

[링크 : http://stackoverflow.com/questions/15299154/wildcard-expansion-in-eclipse-run-configuration]
[링크 : https://bugs.eclipse.org/bugs/show_bug.cgi?id=212264]

'프로그램 사용 > eclipse' 카테고리의 다른 글

ECJ - Eclipse Compiler for Java  (0) 2014.03.25
eclipse JRE 설정하기  (0) 2014.03.20
eclipse JWT / SWING UI 디자이너  (0) 2014.03.10
eclipse JDT + javadoc  (0) 2014.03.10
eclipse auto indent  (0) 2014.03.07
Posted by 구차니
Programming/Java2014. 3. 13. 17:25
c 에서는 j가 초기값으로 4만 되고 for문에서 증가가 될 텐데
java에서는 허용을 안하는지 4만 계속 나오게 된다. 
 
public class Test {
public static void main(String args[])
{
for(int i = 0; i<10;i++)
{
int j = 4;
System.out.println(j++);
}
}
} 

4
4
4
4
4
4
4
4
4
4

굳이 하려면 이런식으로 for문 내의 초기화 문을 이용하면 되는데 타입이 하나만 할 수 있는 건 좀 아쉬운 듯..
public class Test {
public static void main(String args[])
{
for(int i = 0, j = 4; i<10;i++)
{
// int j = 4;
System.out.println(j++);
}
}
} 

---
음? 집에와서 vs2008로 cpp / c로 생성해서 해보니
둘다 j 값이 초기화 된다? 어?!?!?

게다가.. gcc도 안되네??! 헉?!?! 머지??!?!?!
원래 안되던 방법인가!?!? ㅠㅠ 


---
그러고 보니.. 이렇게 쓰려면.. static으로 해야지 증가했던거 같기도 하고.. 끄아아.. 
기억이 가물가물 하다 ㅠㅠ 

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

java abstract / interface & cpp virtual  (0) 2014.03.14
Java / cpp - 다형성(polymorphism) 차이점 (동적 바인딩?)  (0) 2014.03.13
Java array  (0) 2014.03.13
java string.intern()  (0) 2014.03.12
java bytecode decompiler - javap  (0) 2014.03.12
Posted by 구차니