'Programming/C++ / STL'에 해당되는 글 59건

  1. 2017.11.08 c++ 함수 인자 기본값
  2. 2017.01.31 cpp string compare 와 ==
  3. 2016.07.18 cpp this
  4. 2016.07.18 class 기본 접근제한자
  5. 2016.07.18 cpp 매크로 __PRETTY_FUNCTION__
  6. 2016.07.12 cpp dlopen / gcc -l
  7. 2016.07.11 cpp thread.... / pthread
  8. 2016.07.11 객체지향과 if문?
  9. 2016.07.11 cpp 클래스 구성
  10. 2016.07.01 cpp enum in class
Programming/C++ / STL2017.11.08 15:59

정작 써본건 처음이라..

아무튼 이녀석은 오른쪽 부터 기본값을 정할 수 있고

값이 없으면 기본값이 들어간다.


그런데 함수 prototype에 없는거지

함수 선언에 넣으면 아래와 같이 재정의 되었다고 배를 짼다.


error C2572: 'CtestDlg::sender' : 기본 매개 변수 재정의. 매개 변수 9

'CtestDlg::sender' 선언을 참조하십시오. 


[링크 : http://shaeod.tistory.com/365]


근데 이게.. msvc 특성인지 gcc나 다른것도 포함하는 표준인지 모르겠네...

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

c++ 함수 인자 기본값  (0) 2017.11.08
cpp string compare 와 ==  (0) 2017.01.31
cpp this  (0) 2016.07.18
class 기본 접근제한자  (0) 2016.07.18
cpp 매크로 __PRETTY_FUNCTION__  (0) 2016.07.18
cpp dlopen / gcc -l  (0) 2016.07.12
Posted by 구차니

댓글을 달아 주세요

Programming/C++ / STL2017.01.31 09:20

cpp에서는 string 형 변수일 경우 ==를 compare로 묶어놔서

둘이 같은거다 라는건가?


[링크 : http://stackoverflow.com/questions/9158894/differences-between-c-string-and-compare]

[링크 : https://msdn.microsoft.com/ko-kr/library/windows/desktop/e4abh74z(v=vs.80).aspx]

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

c++ 함수 인자 기본값  (0) 2017.11.08
cpp string compare 와 ==  (0) 2017.01.31
cpp this  (0) 2016.07.18
class 기본 접근제한자  (0) 2016.07.18
cpp 매크로 __PRETTY_FUNCTION__  (0) 2016.07.18
cpp dlopen / gcc -l  (0) 2016.07.12
Posted by 구차니

댓글을 달아 주세요

Programming/C++ / STL2016.07.18 20:57



[링크 : http://www.learncpp.com/cpp-tutorial/8-8-the-hidden-this-pointer/]


문득 this를 쓰면 잘못된게 아닐까? 라는 생각

문법으로도 지원하는 자기자신을 의미하지만

크게 쓸 의미도 없고 (명시적으로 표기한다면야 머...)

굳이 명시적으로 써야할 멤버 함수 인자의 명칭과 클래스 멤버 변수가 충돌할경우?


[링크 : http://stackoverflow.com/questions/6779645/use-of-this-keyword-in-c]

[링크 : http://stackoverflow.com/questions/2337540/when-should-you-use-the-this-keyword-in-c]

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

c++ 함수 인자 기본값  (0) 2017.11.08
cpp string compare 와 ==  (0) 2017.01.31
cpp this  (0) 2016.07.18
class 기본 접근제한자  (0) 2016.07.18
cpp 매크로 __PRETTY_FUNCTION__  (0) 2016.07.18
cpp dlopen / gcc -l  (0) 2016.07.12
Posted by 구차니

댓글을 달아 주세요

Programming/C++ / STL2016.07.18 17:47

말은 거창한데..


결론

class 내에 기본적으로 모든 유형에 대해서 

private:로 설정됨


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



근데 이런것도 정리 안해놧었나 -ㅁ-?!?!??

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

cpp string compare 와 ==  (0) 2017.01.31
cpp this  (0) 2016.07.18
class 기본 접근제한자  (0) 2016.07.18
cpp 매크로 __PRETTY_FUNCTION__  (0) 2016.07.18
cpp dlopen / gcc -l  (0) 2016.07.12
cpp thread.... / pthread  (0) 2016.07.11
Posted by 구차니

댓글을 달아 주세요

Programming/C++ / STL2016.07.18 17:39

__FUNC__

는 매크로에서 지원하는 함수명 출력명인데..

클래스를 포함하려면


비표준이지만(gcc/clagn)

__PRETTY_FUNCTION__

를 쓰면 클래스:함수명 이렇게 나온다고 한다.


[링크 : http://stackoverflow.com/questions/11988895/g-function-on-methods-with-class-name]


$ cat func.cpp

#include <iostream>


using namespace std;


class AAA

{

public:

        int a;

        int get();

        int set(int val);

};


int AAA::get()

{

        cout << __func__ << endl;

        cout << __PRETTY_FUNCTION__ << endl;

        return a;

}


int AAA::set(int val)

{

        cout << __func__ << endl;

        cout << __PRETTY_FUNCTION__ << endl;

        a = val;

}


int main()

{

        AAA a;

        a.set(1);

        a.get();

        return 0;


$ g++ func.cpp

$ ./a.out

set

int AAA::set(int)

get

int AAA::get()


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

cpp this  (0) 2016.07.18
class 기본 접근제한자  (0) 2016.07.18
cpp 매크로 __PRETTY_FUNCTION__  (0) 2016.07.18
cpp dlopen / gcc -l  (0) 2016.07.12
cpp thread.... / pthread  (0) 2016.07.11
객체지향과 if문?  (0) 2016.07.11
Posted by 구차니

댓글을 달아 주세요

Programming/C++ / STL2016.07.12 08:41

dlopen은 c 시절의 녀석이라 class 자체를 끌어올수는 없다.

[링크 : http://www.joinc.co.kr/w/Site/C++/Documents/Dynamic_Class_Loading]


다만.. gcc 에서 컴파일시 -l 링커이름으로 주면 바로 사용가능

[링크 : http://stackoverflow.com/questions/58058/using-c-classes-in-so-libraries]




근데 문득.. 둘다 so인데

dlopen과 -l을 통한것의 차이를 모르겠네?

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

class 기본 접근제한자  (0) 2016.07.18
cpp 매크로 __PRETTY_FUNCTION__  (0) 2016.07.18
cpp dlopen / gcc -l  (0) 2016.07.12
cpp thread.... / pthread  (0) 2016.07.11
객체지향과 if문?  (0) 2016.07.11
cpp 클래스 구성  (0) 2016.07.11
Posted by 구차니

댓글을 달아 주세요

Programming/C++ / STL2016.07.11 13:46

아.. 어렵다 ㅠㅠ


쓰레드 join()

[링크 : http://arer.tistory.com/45]

[링크 : http://linux.die.net/man/3/pthread_cond_wait]

[링크 : http://linux.die.net/man/3/pthread_join]

[링크 : http://www.joinc.co.kr/w/Site/Thread/Beginning/PthreadApiReference#AEN144]

[링크 : http://www.joinc.co.kr/w/man/3/pthread_create]


main()이 return 0;로 되어도

쓰레드가 종료 되기 전에는 main()이 못 죽는 신기한 현상? 이라고 해야하려나?


[링크 : http://www.cplusplus.com/reference/thread/thread/]

[링크 : http://www.cplusplus.com/reference/thread/thread/join/]


[링크 : http://www.morenice.kr/75]

[링크 : http://linux.die.net/man/3/pthread_attr_setdetachstate]


자식쓰레드를 부모쓰레드로 부터 분리하기

pthread_join의 사용으로 발생할 수 있는 문제점을 해결하기 위한, 가장 좋은 방법중의 하나는 pthread_detach 를 이용해서, 자식 쓰레드를 부모쓰레드와 완전히 분리해 버리는 방법이다. 이 경우 자식 쓰레드가 종료되면, 모든 자원이 즉시 반환된다. 반면, 자식 쓰레드의 종료상태를 알 수 없다는 문제가 발생한다. 대게의 경우 자식 쓰레드의 종료상태가 중요한 문제가 되지는 않을 것이다.

[링크 : http://www.joinc.co.kr/w/Site/system_programing/Book_LSP/ch07_Thread]

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

cpp 매크로 __PRETTY_FUNCTION__  (0) 2016.07.18
cpp dlopen / gcc -l  (0) 2016.07.12
cpp thread.... / pthread  (0) 2016.07.11
객체지향과 if문?  (0) 2016.07.11
cpp 클래스 구성  (0) 2016.07.11
cpp enum in class  (0) 2016.07.01
Posted by 구차니

댓글을 달아 주세요

Programming/C++ / STL2016.07.11 13:14

도대체 객체지향이 머길래 IF를 없앨수 있나 라고 글들을 찾아 보니..

객체 타입에 따라서 자동화 되어 버린(?) C로 치면 모델병 미친듯한 if문에서

조금은 해방될 수 있다 정도로 이해하면 되려나?


논리 조거식 조차도 없애야 한다는 줄 알았네 ㄷㄷㄷ


[링크 : https://kldp.org/node/31629]

[링크 : http://alankang.tistory.com/249]

    [링크 : http://silverktk.tistory.com/353]

[링크 : http://www.gpgstudy.com/forum/viewtopic.php?t=7803]

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

cpp dlopen / gcc -l  (0) 2016.07.12
cpp thread.... / pthread  (0) 2016.07.11
객체지향과 if문?  (0) 2016.07.11
cpp 클래스 구성  (0) 2016.07.11
cpp enum in class  (0) 2016.07.01
cpp const  (0) 2016.06.22
Posted by 구차니

댓글을 달아 주세요

Programming/C++ / STL2016.07.11 11:28

좋은 내용들이 있어서 저장

Shape::Shape (const Point center,

const int color)

{

_center = center;

_color = color;

}


Shape::Shape (const Pointer center,

const int color)

: _center(center)

, _color (color)

{


[링크 : http://ogoons.tistory.com/59]


상식을 깨는(!)

초기화를 위해 constructor에 너무 많은걸 넣지 말라라던가(객체 생성시 오버헤드로 인해 초기화 연산자로?)

등등?

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

cpp thread.... / pthread  (0) 2016.07.11
객체지향과 if문?  (0) 2016.07.11
cpp 클래스 구성  (0) 2016.07.11
cpp enum in class  (0) 2016.07.01
cpp const  (0) 2016.06.22
const 멤버 변수 초기화(member variable initializer)  (0) 2016.06.22
Posted by 구차니

댓글을 달아 주세요

Programming/C++ / STL2016.07.01 10:04

cpp이랑은 안친한데 크윽 ㅠㅠ

컴파일러나 Cxx 적용 버전의 차이겠지만


$ g++ --version

g++ (Ubuntu/Linaro 4.6.3-1ubuntu5) 4.6.3

Copyright (C) 2011 Free Software Foundation, Inc.

This is free software; see the source for copying conditions.  There is NO

warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.


g++ 4.6.3 에서는 scope 인식을 하긴 하는데

$ cat enum.cpp

#include <iostream>


class A

{

public:

        int a;

        enum

        {

                A_1,

                A_2,

                A_3

        };

};


class B

{

public:

        int b;

        enum

        {

                B_1,

                B_2,

                B_3

        };


};


int main()

{

        A a;

        B b;


        a.a = B_1;

        a.a = A_1;


        b.b = A_1;

        b.b = B_1;

        return 0;

}


$ g++ enum.cpp

enum.cpp: In function ‘int main()’:

enum.cpp:33:8: error: ‘B_1’ was not declared in this scope

enum.cpp:34:8: error: ‘A_1’ was not declared in this scope 


clang에서는 scope를 조금더 정밀하게 따지는 듯?

$ clang --analyze enum.cpp

enum.cpp:33:8: error: use of undeclared identifier 'B_1'

        a.a = B_1;

              ^

enum.cpp:34:8: error: use of undeclared identifier 'A_1'

        a.a = A_1;

              ^

enum.cpp:36:8: error: use of undeclared identifier 'A_1'

        b.b = A_1;

              ^

enum.cpp:37:8: error: use of undeclared identifier 'B_1'

        b.b = B_1;

              ^

4 errors generated. 


scope만 잡아주면.. public에서 선언한거라 문제없이 되는건가?

$ cat enum.cpp

#include <iostream>


class A

{

public:

        int a;

        enum

        {

                A_1,

                A_2,

                A_3

        };

};


class B

{

public:

        int b;

        enum

        {

                B_1,

                B_2,

                B_3

        };


};


int main()

{

        A a;

        B b;


        a.a = B::B_1;

        a.a = A::A_1;


        b.b = A::A_1;

        b.b = B::B_1;

        return 0;


$ g++ enum.cpp

$ clang --analyze enum.cpp 



enum 자체에 private를 줘보니..

에러 뿜뿜!

$ cat enum.cpp

#include <iostream>


class A

{

public:

        int a;


private:

        enum

        {

                A_1,

                A_2,

                A_3

        };

};


class B

{

public:

        int b;


private:

        enum

        {

                B_1,

                B_2,

                B_3

        };


};


int main()

{

        A a;

        B b;


        a.a = B::B_1;

        a.a = A::A_1;


        b.b = A::A_1;

        b.b = B::B_1;

        return 0;


$ g++ enum.cpp

enum.cpp: In function ‘int main()’:

enum.cpp:25:3: error: ‘B::<anonymous enum> B::B_1’ is private

enum.cpp:37:11: error: within this context

enum.cpp:11:3: error: ‘A::<anonymous enum> A::A_1’ is private

enum.cpp:38:11: error: within this context

enum.cpp:11:3: error: ‘A::<anonymous enum> A::A_1’ is private

enum.cpp:40:11: error: within this context

enum.cpp:25:3: error: ‘B::<anonymous enum> B::B_1’ is private

enum.cpp:41:11: error: within this context


$ clang --analyze enum.cpp

enum.cpp:37:11: error: 'B_1' is a private member of 'B'

        a.a = B::B_1;

                 ^

enum.cpp:25:3: note: declared private here

                B_1,

                ^

enum.cpp:38:11: error: 'A_1' is a private member of 'A'

        a.a = A::A_1;

                 ^

enum.cpp:11:3: note: declared private here

                A_1,

                ^

enum.cpp:40:11: error: 'A_1' is a private member of 'A'

        b.b = A::A_1;

                 ^

enum.cpp:11:3: note: declared private here

                A_1,

                ^

enum.cpp:41:11: error: 'B_1' is a private member of 'B'

        b.b = B::B_1;

                 ^

enum.cpp:25:3: note: declared private here

                B_1,

                ^

4 errors generated.


결론 

public일 경우 당연히(!) 다른 클래스에서도 사용 가능,

private일 때는 당연히(!) 다른 클래스에서는 사용 불가

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

객체지향과 if문?  (0) 2016.07.11
cpp 클래스 구성  (0) 2016.07.11
cpp enum in class  (0) 2016.07.01
cpp const  (0) 2016.06.22
const 멤버 변수 초기화(member variable initializer)  (0) 2016.06.22
std::endl  (0) 2015.06.24
Posted by 구차니

댓글을 달아 주세요