28~30 엠티를 다녀옵니다 +_+

대천해수욕장 바로 앞이라고하네욤

간만에 일상탈출!

'소소한이야기' 카테고리의 다른 글

카메라 구입  (0) 2011.06.22
투데이수가 급증하기 시작  (0) 2011.06.14
잠시 휴식  (0) 2011.02.25
게임 카피하기...  (0) 2011.02.22
S4도 접을때가 왔는가..ㅜㅜ  (0) 2011.02.16

클래스 이름

 

대문자로 시작

둘 이상의 단어가 묶여서 하나의 이름 구성 시, 새 단어는 대문자로 시작

 

class Car  => Car 대문자로 시작

class MyCar => My + Car 새 단어는 대문자로 시작

 

변수, 메소드 이름

 

소문자로 시작

둘 이상의 단어가 묶여서 하나의 이름 구성 시, 새 단어는 대문자로 시작

 

int enemy => 소문자로 시작

int enemyLife => enemy + Life 새 단어는 대문자로 시작

 

상수 이름

 

전부 대문자로 표현

둘 이상의 단어가 묶여서 하나의 이름 구성 시, 두 단어 사이에 _ 삽입

 

final int COLOR => COLOR 모두 대문자

final int COLOR_KIND => COLOR + KIND _ 으로 연결

'프로그래밍 > 정보' 카테고리의 다른 글

클래스 설계 규칙  (0) 2011.04.07
프로그래밍에 대한 정보들  (0) 2011.02.16
할당 연산자는 *this 의 참조를 리턴하라.
Ob& Ob::operator=(const Ob& rhs)
{
...
    return *this;
}
 
재귀치환을 검사하라.
Ob& Ob::operator=(const Ob& rhs)
{
    if(this==&rhs)
        return *this
...
}
 
배이스 클래스 소멸자는 항상 가상함수로 선언하라.
vurtual ~Ob();
 
인자가 1개인 생성자는 항상 explicit로 선언하라.(암시적인 형변환은 인자가 1개인 생성자와 형변환 연산자에서 발생한다)
explicit Ob(int n);
 
특별한 경우 외에는 형변환 연산자를 사용하지 마라. 꼭 필요하다면 to_string(), to_double(), c_str(), 과 같은 맴버함수를 만들어라. 또는 explicit operator 사용.
 
전위 증가
Ob& Ob::operator++()
{
    *this += 1;
    return *this;
}
 
후위 증가
const Ob Ob::operator++(int)
{
    const Ob tmp = *this;
    ++(*this);
    return tmp;
}
 
&&와 || 연산자는 절때 오버로딩 하지 않는다.

메모리 지정 new(placement new) 사용법(공유 메모리, 메모리map I/O 등에서 유용).
class Ob
{
void* operator new(size_t nSize, void* pBuf)
{
return pBuf;
}

static Ob* NewOb(void* pBuf, int n/*생성자 파라미터*/)
{
return new (pBuf) Ob(n); // operator new에 void* pBuf가 없다면 new Ob(n); 으로 호출
}
};
Ob* b = new Ob;
//아래와 동일->>
void* p = operator new(sizeof(Ob)); // 메모리 할당
p의 메모리를 Ob::Ob(); 호출하여 초기화
b = static_cast<Ob*>p;

new 를 호출할 경우 operator new (size_t) 가 호출되고 그 메모리가 생성자로 초기화된다.
그러나 operator new 에 파라미터를 더 주고 오버라이딩 할 경우 new (파라미터) 와 같이 호출해야한다.
malloc 처럼 생성자가 필요없는 메모리 할당의 경우 operator new(100); 과 같이 사용하면 된다.

맴버변수중 동적할당 변수는 const std::auto_ptr을 사용한다.
const std::auto_ptr == type* const ptr
std::auto_ptr<const type> == const type* ptr

소멸자 구현시 꼭 try-catch 로 예외가 빠져나가지 못하게 잡자.
특히 소멸자에서 함수를 호출할 경우 함수 하나하나 전부 try-catch로 묶어야한다.

'프로그래밍 > 정보' 카테고리의 다른 글

클래스, 변수, 상수 이름규칙  (0) 2011.04.07
프로그래밍에 대한 정보들  (0) 2011.02.16
전위형과 후위형을 함수로 구현한다면 이렇게됨

후위형은 먼저 연산을 하고 값이 증가됨

그러니까 임시변수를 선언해서 임시변수에 값을 대입시켜놓고 실질적으로 값은 증가시켜놓으면 된다. 그러고 임시변수를 반환시키면 된다.

전위형은 값이 증가되고 연산을 하므로, 실질적으로 증가를 시키고 그대로 반환을시키면 된다.

둘의 결정적인 차이는 "후위형은 임시변수를 하나 선언한다" 이고 즉, 이말은 전위형은 작업을 한번만하고 후위형은 작업을 두번을한다(메모리 추가소모) 라는소리이다. 그러니까, 단순증감일 경우에는 전위형을 사용하는것이 메모리낭비를 하지않는 방법이다.

#include <stdio.h>


int& fPlus(int& i)

{

i = i+1;


return i;

}

int lPlus(int& i)

{

int temp=i;

i = i+1;


return temp;

}


int main(void)

{

int a=0, i=1;


a = fPlus(i);

printf("a = %d\t i = %d\n",a,i);


i = 0;


a = lPlus(i);

printf("a = %d\t i = %d\n",a,i);


a = 0;

i = 0;


a = lPlus(i);

//a = i++ + i++; 그렇다면 이것과의 차이는????

printf("a = %d\t i = %d\n",a,i);


return 0;

}


하지만 완벽하지는 않은것이, 구현한 함수대로 동작을 하는 원리라면, 주석처리한 부분과 결과가 동일해야하지만 동일하지가 않다. 이부분에 대해서는 아직도 미스터리.

추가로, (i++ + i++) + ++i 와 i++ + i++ + ++i 의 차이도 모르겠다. 
휴식이라기보다는 곧 개강이기도 하고 해야할일도 산더미라서 포스팅을 얼마나 열심히할수 있을지 장담할수가 없습니다..
하지만 어쨌든 동아리에서 세미나를 하게되면 이블로그를 통해서 스스로 공부도 했으면 하기때문에 세미나의 속도와는 최대한 맞춰야겠지요..ㅎㅎ 세미나를 통해 다룰내용도 아마 매우 빠르게 진행될 예정이라 어쩌면 포스팅이 못따라갈수도 있겠네요..

헉 방학동안 뭔가 하긴했고 머리속에 남은것도 있지만 벌써 개강2틀남았다는사실에 충격
내방학은 어디에ㅜㅜ..

'소소한이야기' 카테고리의 다른 글

투데이수가 급증하기 시작  (0) 2011.06.14
엠티~  (0) 2011.04.25
게임 카피하기...  (0) 2011.02.22
S4도 접을때가 왔는가..ㅜㅜ  (0) 2011.02.16
책두권 옴  (0) 2011.02.08

+ Recent posts