'잡동사니'에 해당되는 글 12954건

  1. 2013.03.04 c++ function overloading 2
  2. 2013.03.04 c++ class member function
  3. 2013.03.04 c++ namespace
  4. 2013.03.03 c++ class와 struct
  5. 2013.03.03 2013년 1,2월 반성
  6. 2013.03.02 origin 할인! - 데드 스페이스3, 크라이시스 3
  7. 2013.03.02 데드 스페이스 2 공략
  8. 2013.03.02 데드 스페이스 1 엔딩(easy)
  9. 2013.03.01 3.1절
  10. 2013.03.01 cgiirc
Programming/C++ STL2013. 3. 4. 23:35
영어사전을 뒤져보면, overriding은 우선시 되서 하는 것이고 overloading은 과적이다.
overriding이 상속으로 함수의 내용을 갈아 엎는걸 의미하는 것을 보면 '최우선시'가 적당한것 같고
overloading은 하나의 이름으로 여러가지 일을 하는 것이니 '과적'도 적당한것 같고

그런데 막상 단어만 두면 엄청 헷갈리는 녀석이다 -_-

overriding 미국식 [|oʊvər|raɪdɪŋ] play 영국식 [|əʊvə|raɪdɪŋ] play 
다른 무엇보다 더 중요한, 최우선시 되는
overloading
(조선공학) 과적(過積)(고봉싣기)  



class CRectangle {
int width, height;
public:
CRectangle ();
CRectangle (int,int);
int area (void) {return (width*height);}
};

CRectangle::CRectangle () {
width = 5;
height = 5;
}

CRectangle::CRectangle (int a, int b) {
width = a;
height = b;
}

int _tmain(int argc, _TCHAR* argv[])
{
CRectangle rect (3,4);
CRectangle rectb;
cout << "rect area: " << rect.area() << endl;
cout << "rectb area: " << rectb.area() << endl;
return 0;
}  

일단 overloading의 제약사항은 아래의 세가지 이다.
동일 return type
동일 function name 
다른 function variable

c++의 동적 타입 바인딩을 통해서
컴파일 / 런타임 시에 입력받는 변수형을 추적하여 해당 함수로 연결해줄수 있지만
리턴되는 값이 들어가는 곳에 대해서는 형변환이 있을수도 있으니 어떤걸로 할 수 없으니 사용이 불가능 하다고
들은거 같긴한데 먼소리인지 모르겠고 -_- 

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

다중상속의 문제점  (0) 2013.03.11
상속시 public, private 키워드는 하나씩만 적용된다  (0) 2013.03.11
c++ class member function  (0) 2013.03.04
c++ namespace  (0) 2013.03.04
c++ class와 struct  (0) 2013.03.03
Posted by 구차니
Programming/C++ STL2013. 3. 4. 23:15
class는 struct 에서 함수를 포함하는 개념인데
물론, class안에서 함수를 선언할수 있지만 확실히 보기 쉽지 않아지는게 문제이니
되도록이면 class 안에는 prototype만 선언하고 class 밖에서 함수 본체를 만들어 주는게 나을 듯하다.

class CRectangle {
int *width, *height;
public:
CRectangle (int,int);
void ~CRectangle ()
{
delete width;
delete height;
}
int area () {return (*width * *height);}
};

void CRectangle::CRectangle (int a, int b) {
width = new int;
height = new int;
*width = a;
*height = b;
}

int _tmain(int argc, _TCHAR* argv[])
{
CRectangle rect (3,4), rectb (5,6);
cout << "rect area: " << rect.area() << endl;
cout << "rectb area: " << rectb.area() << endl;
return 0;
}
 

1. 생성자/소멸자는 리턴형이 존재하지 않는다.
    error C2577: 'CRectangle' : 소멸자은(는) 반환 형식을 가질 수 없습니다.
    error C2533: 'CRectangle::{ctor}' : 생성자에서 반환 형식을 사용할 수 없습니다.

2. class 안에 함수를 넣어도 무방하다
class name {
    function_name() { /* function content */ } 
    function_prototype(); 
}

return_type name::function_prototype()
{

[링크 : http://www.cplusplus.com/doc/tutorial/classes/]


---
그리고 c++에서 부터는 prototype에 변수의 형만 적고, 변수명을 생략가능해진다.
CRectangle (int,int);
CRectangle::CRectangle (int a, int b) { /* ... */ }

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

상속시 public, private 키워드는 하나씩만 적용된다  (0) 2013.03.11
c++ function overloading  (2) 2013.03.04
c++ namespace  (0) 2013.03.04
c++ class와 struct  (0) 2013.03.03
c++ cout 제어하기  (0) 2013.02.15
Posted by 구차니
Programming/C++ STL2013. 3. 4. 00:18
namespace는 어떻게 보면 java에서의 패키지와 유사한 묶음에 대한 접근관리라고 하면 되려나?

아래와 같은형식으로 선언이 되며
namespace _spacename_
{


다른 namespace 에서는 동일한 변수 명을 선언해도 문제가 없다.
대신에 :: scope 연산자를 통해서
어떠한 영역의 변수인지를 알려주어야 한다.

물론 namespace 역시 선언되지 이전에 먼저 사용할수는 없으며
사용시에는 에러가 발생한다.
using namespace std;
using namespace first;

namespace first
{
int x = 5;
int y = 10;
}

namespace second
{
double x = 3.1416;
double y = 2.7183;
}

int _tmain(int argc, _TCHAR* argv[])
{
cout << x << endl;
cout << y << endl;
cout << second::x << endl;
cout << second::y << endl;
return 0;
} 

cpp_console.cpp(7) : error C2871: 'first' : 같은 이름을 가진 네임스페이스가 없습니다.
cpp_console.cpp(23) : error C2065: 'x' : 선언되지 않은 식별자입니다.
cpp_console.cpp(24) : error C2065: 'y' : 선언되지 않은 식별자입니다. 

물론, using은 중복되는 여러개를 사용할 수 있으나
using namespace std;

namespace first
{
int x = 5;
int y = 10;
}

namespace second
{
double x = 3.1416;
double y = 2.7183;
}

using namespace first;

int _tmain(int argc, _TCHAR* argv[])
{
cout << x << endl;
cout << y << endl;
cout << second::x << endl;
cout << second::y << endl;
return 0;
} 
[링크 : http://www.cplusplus.com/doc/tutorial/namespaces/]

아무래도 네임스페이스 내에 어떤 변수가 있을지 모르니
되도록이면 여러개의 using namespace는 쓰지 않는게 정신건강에 좋을듯 하다. 
실험은 조금 더 해봐야 겠지만..
해제하는 명령은 존재하지 않는것 같기에
using namespace는 {} 에 영향을 받으므로 블럭으로 감싸서 어느정도 회피는 가능하다고 한다.
[링크 : http://blog.naver.com/harkon/120061325101]

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

c++ function overloading  (2) 2013.03.04
c++ class member function  (0) 2013.03.04
c++ class와 struct  (0) 2013.03.03
c++ cout 제어하기  (0) 2013.02.15
c++ inheritance(상속)  (0) 2013.02.15
Posted by 구차니
Programming/C++ STL2013. 3. 3. 23:48
struct가 변수만 모아놓을수 있었다면
class는 struct에서 확장되어 함수까지 포함하는 개념이다.

단, c++에서 struct로도 함수를 포함해 선언할 수 있지만 class member가 public으로 선언되고
class로 선언시에는 private로 선언되는 차이가 있다고 한다.
[링크 : http://www.dal.kr/chair/cpp/cpp313.html ]

class의 접근제어는
public:
private:
protected: 
로 만들어 지며

class testclass
{
private:
    int priv_a;

public:
    int pub_a;

private:
    int priv_b;
식으로 접근을 제어할 수 있다.
단, 기본적으로 private로 되고 선언된 아래로는 끝까지 이어지니 구획을 구분해서 쓰는게 용이하고
private는 위에서 서술하였지만, 기본적으로 설정이 되니 일반적으로는 public: 만 명시적으로 사용한다.

물론 constructor / destructor 도 강제로(?) private로 만들수는 있지만
그럼 그걸 어떻게 쓸래? 라는 문제가 발생하니 생성자와 파괴자는 public: 으로 선언하자

using namespace std;

class CRectangle {
int width, height;
CRectangle (int,int);

public:
int area () {return (width*height);}
};

CRectangle::CRectangle (int a, int b) {
width = a;
height = b;
}

int _tmain(int argc, _TCHAR* argv[])
{
CRectangle rect (3,4);
CRectangle rectb (5,6);
cout << "rect area: " << rect.area() << endl;
cout << "rectb area: " << rectb.area() << endl;
return 0;
}

cpp_console.cpp(25) : error C2248: 'CRectangle::CRectangle' : private 멤버('CRectangle' 클래스에서 선언)에 액세스할 수 없습니다.
cpp_console.cpp(11) : 'CRectangle::CRectangle' 선언을 참조하십시오.
cpp_console.cpp(9) : 'CRectangle' 선언을 참조하십시오.
cpp_console.cpp(26) : error C2248: 'CRectangle::CRectangle' : private 멤버('CRectangle' 클래스에서 선언)에 액세스할 수 없습니다.
cpp_console.cpp(11) : 'CRectangle::CRectangle' 선언을 참조하십시오.
cpp_console.cpp(9) : 'CRectangle' 선언을 참조하십시오. 

[링크 : http://www.cplusplus.com/doc/tutorial/classes/ ]

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

c++ class member function  (0) 2013.03.04
c++ namespace  (0) 2013.03.04
c++ cout 제어하기  (0) 2013.02.15
c++ inheritance(상속)  (0) 2013.02.15
c++ template  (0) 2013.02.15
Posted by 구차니
2월 설날 이벤트로 게임을 지르고 나서 너무 게임에만 빠졌던 듯..
다시 마음을 바로잡고 C언어랑 공부 해야징 -_-


향후 계획
1. TOEIC 공부(일단 자격증이니.. 만료된것도 있고)
2. 정보처리 기술사 혹은 정보관리 기술사 획득(이건 1년 정도 공부해야 할 듯)
3. C++ / CUDA / openMP / openGL
4. 리눅스 프로그래밍 (소켓 및 파일 관련으로)
5. 다이어트 식욕억제제 어떻게 해야하나.... OTL
6. 일주일에 두번 이상 자전거 40km 타기

---
월별 계획
3월 C++ / CUDA / TOEIC 신청
4월 openMP / openGL / TOEIC 시험
5월 openCV
6월 리눅스 소켓 프로그래밍
7월 ?
8월 ?
9월 퇴직
10월 잉여롭게 운동 + 휴식
11월
12월
1월
2월
3월 

'개소리 왈왈 > 직딩의 비애' 카테고리의 다른 글

큰할아버지 부고와 야근의 시작  (2) 2013.03.18
서버가 으앙 쥬금  (2) 2013.03.12
스팀 22일까지 50~75% 할인 기간  (0) 2013.02.18
북핵 실험 -_-  (0) 2013.02.12
1월 끝, 2월 시작  (0) 2013.01.31
Posted by 구차니
나온지 얼마 안된걸 또 할인하다니..
얼마전에 배필3 할인해서 충격과 공포에 몰아넣더니..
너무 하는거 아닌가 싶긴한데...

둘다 사기에는 미네랄이 부족하고
크라이시스 3 돌리기에는 사양이 부족하니...
데드 3를 사야겠... (어?)


Posted by 구차니
일베인의 기운이 조금 느껴지지만.. (아니 조금 많이..)
쓸만한 공략이 이거 밖에 안보이니 일단..

[링크 : http://blog.naver.com/PostList.nhn?blogId=zackyyy&categoryNo=115&from=postList]


그나저나 챕터4에서 스토커에서 몇번을 당한거야 ㅠ.ㅠ
몇번 하다가 안되서 공략 보니까 잡는건 맞네 -_-
난 그냥 이 녀석에게 잡히지 않고 도망 다니다가 가는건줄 알정도로
돌진해와서 잡는데 드럽게 빠르다 ㅠ.ㅠ

[링크 : http://rigvedawiki.net/r1/wiki.php/스토커(데드 스페이스)]
Posted by 구차니

몇가지 해금되었는데
세이브된 것에서 해야 주는지 그냥 hard나 다른걸로 시작해도 주는건지 모르겠네..


아무튼 엔딩보고 저장이 뜨길래 해보니 CLEARED GAME 이라고 뜨는데 10시간?!?!? 에게?


'게임 > 데드 스페이스 시리즈' 카테고리의 다른 글

간만에 데드 스페이스 2  (0) 2013.03.10
데드 스페이스 2 공략  (0) 2013.03.02
데드스페이스 1 - 챕터 11  (0) 2013.02.24
데드 스페이스 공략  (0) 2013.02.16
데드 스페이스 1  (0) 2013.02.13
Posted by 구차니
예전에 들리던 이야기로는


요즘아이들은 3.1절 유관순 열사에 대해 물으면
"도시락 폭탄 던진분 아니에요?" 이런 소리 들린다던데.. 
이제부터라도 이런 착각이 사라지가 역사교육을 강화해야 하지 않을까?


근데 친일파 문제도 있고 하니
아무래도 근대/현대사를 안가르치는게 현실이다 보니
어쩔수 없고
의도된 양상이겠지? 
Posted by 구차니
프로그램 사용/ircd2013. 3. 1. 21:48
cgi를 통해서 irc를 제공하는데 모바일에서도 잘 작동하는 듯하다.

---
2013.3.2 추가
어? 12.04LTS에서 왜.. 안되지?
11.10에서는 문제없이 작동하는 듯하다.
---

ubuntu 에서는 cgiirc 패키지로 제공하며
$ sudo apt-cache search cgiirc
cgiirc - web based irc client

$ sudo apt-get install cgiirc
패키지 목록을 읽는 중입니다... 완료
의존성 트리를 만드는 중입니다
상태 정보를 읽는 중입니다... 완료
다음 새 패키지를 설치할 것입니다:
  cgiirc
0개 업그레이드, 1개 새로 설치, 0개 제거 및 0개 업그레이드 안 함.
127 k바이트 아카이브를 받아야 합니다.
이 작업 후 864 k바이트의 디스크 공간을 더 사용하게 됩니다.
받기:1 http://kr.archive.ubuntu.com/ubuntu/ oneiric/universe cgiirc amd64 0.5.9-3.1 [127 kB]
내려받기 127 k바이트, 소요시간 0초 (348 k바이트/초)
전에 선택하지 않은 cgiirc 패키지를 선택합니다.
(데이터베이스 읽는중 ...현재 65453개의 파일과 디렉터리가 설치되어 있습니다.)
cgiirc 패키지를 푸는 중입니다 (.../cgiirc_0.5.9-3.1_amd64.deb에서) ...
cgiirc (0.5.9-3.1) 설정하는 중입니다 ...

/etc/cgiirc/ 에서 설정을
/usr/lib/cgi-bin/cgiirc 에 실행 파일이 있다(건드릴 필요는 없음)
수정해야 할 내용은
$ vi /etc/cgiirc/cgiirc.config
image_path = /images/cgiirc
#ip_access_file = ipaccess 

/images/cgiirc 는 /var/www/images/cgiirc 로 넣어 주어야 하고
만약 그 경로에 없다면 수정해주는게 좋다.

그리고 ip_access_file의 경우
***Access Denied: No connections allowed
라고 에러가 날경우 주석처리로 삭제해주면 된다.

[링크 : http://cgiirc.org/]
[링크 : http://packages.debian.org/stable/net/cgiirc]

[링크 : http://cgiirc.org/docs/trouble.php]
[링크 : http://timsaylor.com/index.php/2007/04/26/cgiirc-and-ubuntu/

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

irc 서버 구축 관련 문서  (0) 2013.06.14
inspircd  (0) 2013.03.12
lightIRC  (0) 2013.03.01
irc / irc bot  (0) 2013.02.28
ircd.conf - ircd 설정하기  (0) 2013.02.28
Posted by 구차니