블로그 이미지
kalstein

여러가지 프로그래밍 관련이나...신변잡기적인 글들을 남기는 블로그입니다. 지식은 나누는만큼 강력해집니다 ^^

Rss feed Tistory
Programming 2010. 11. 12. 16:42

C++ RValue Reference... 꽤 괜찮겠네

기존의 C++에서는 복사생성자 및 대입연산자에서는 무조건 deep copy를 해야했다.
예륻 들어 vector<> 같은 녀석이 있었고 그게 사이즈가 크다면 모조리 다 copy부터 했다는뜻.
그러나... RValue Reference의 경우는 Shallow copy만 해도 된다!
(간단히 말해 포인터만 옮겨간다...라고 생각하믄 될듯)

궁금한건...복사생성자,대입연산자는 C++이 기본으로 만들어주는게 있는데,
RValue Reference를 사용하는 move 연산자들은... 자동으루 해주나? ㅡ.ㅡ;;
그건 잘 모르겠네 흠.

뭐 VS 2010 부터 지원된다고 하니 (gcc는 4.0 이상의...뭐 마이너 버젼이 있나본데 자세히는 잘...)
꽤 많은 유저들이 은연중에 사용할듯.
STL 만 해도 그냥 기존처럼 써도 많은 부분이 성능향상이 있으니.
,
Programming 2008. 11. 26. 10:50

Java의 implements, extends 를 C++로 표현하자면?

요즘 책을 보는데 언어가 JAVA로 되어있다. 그래서 몇가지 단어들이 익숙치 않은데...
그중에서 좀 애매한 부분이 'implements' 와 'extends'. extends를 구현상속이라고 되어있더라.
C++에선 상속이...그냥 pulic상속이냐, private 상속이냐...이정도만 있어서 뭐가 있나보다...하고 넘어갔다가 오늘 찾아보니 java에서는 좀 상속을 엄격하게 다루는듯.

implements를 C++로 하자면

struct IConnection
{
    virtual void connect() = 0;
};

class TCPConnection : public IConnection
{
public:
    virtual void connect()
    {
        어쩌구저쩌구...
    }
private:
    어쩌구저쩌구...
};

요런식으로 interface만 정의된 (pure virtual function들만 있는...) class를(혹은 구조체를) 상속받아서 구현하는것을 의미한다.

그 외의 것은 다 extends로 보면 된다.
,
TOTAL TODAY