• namespace(이름공간)
C++ 에서는 동일한 함수,변수의 충돌을 막기 위해 이름공간이 존재합니다.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#include <iostream>
 
namespace Test1
{
    void Func() {}
}
 
namespace Test2
{
    void Func() {}
}
 
int main()
{
    Test1::Func();
    Test2::Func();
    return 0;
}
cs


다음과 같이 이름공간을 부여해 함수의 충돌을 막을 수 있는 코드를 작성할 수 있습니다.


  • using
이름공간을 사용함으로써 타이핑을 줄일 수 있습니다.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#include <iostream>
 
using namespace Test1;
//using namespace Test2;
 
namespace Test1
{
    void Func() {}
}
 
namespace Test2
{
    void Func() {}
}
 
int main()
{
    Func();            //Test1::Func();
    Test1::Func();
    Test2::Func();
    return 0;
}
cs


하지만 4번째 줄의 주석을 풀면 Func() 함수 모호함이 생기기 때문에 에러가 발생할 수 있으니

조심히 다뤄서 사용하시면 좋겠습니다.

'프로그래밍 > C++' 카테고리의 다른 글

C++ 조정자(Manipulator)  (0) 2019.01.02
Posted by Dongkey
,

유니티 최신버전에서는 뷰포리아가 지원되기 되는 것 같더라구요


이번장은 유니티를 이용해 마커를 인식하는 것을 작성하겠습니다.



0. Vuforia 이미지 등록

먼저 뷰포리아(https://developer.vuforia.com)를 가입하시고 DevPortal 에서

  1. License 생성(Type이 Developer 이면 비용이 들지 않습니다.)
  2. DataBase 생성
  3. Add Taget(이미지 타겟)을 통해 이미지를 추가하고
  4. Download Database를 통해 UnityPackage를 뽑을 수 있습니다.
  5. 생성한 License의 키를 복사하여 Unity의 License Key에 붙여넣으시면 됩니다.

(Resource->VuforiaConfiguration -> App License Key )

다음의 뷰포리아 셋팅을 추가하시면 License키를 등록할 수 있습니다.


1. Unity Vuforia Setting

Edit->ProjectSettings->Player



XR Settings-> Vuforia Augemented Reality Supptorted Check




2. 기존의 카메라 삭제 후 ARCamera 등록

GameObject->Vuforia->ARCamera



3. 이미지 마커 객체 생성

GameObject->Vuforia->Image 



이미지 마커 위에 객체 생성시에 휴대폰 혹은 웹캠을 통해 이미지 인식 위에 생성되는 걸 확인할 수 있습니다.


Posted by Dongkey
,

저는 개인적으로 메모리의 개념을 알고 있어야 더 좋은 코드를 작성할 수 있다고 생각합니다.


2017/08/13 - [프로그래밍/C] - 메모리 영역 ( Code , Data , Heap, Stack )


메모리 영역 중 프로그래머가 관리하는 영역이 Heap 영역을 관리여부에 따른 언어가 Managed 와 Umanaged로 나뉘게 됩니다.

  • Managed Language 매니지드 언어

 대표적인 언어로는 C,C++로 메모리의 할당과 해제를 통한 메모리를 관리하여야 메모리의 누수가 없게 신경을 써줘야 하지만 언매니지드 언어에 비해 속도가 빠릅니다.

 또한, 메모리를 구체적인 관리를 할수 있기 때문에 프로그래밍의 자유도가 높습니다.

  • UnManaged Language 언매니지드 언어

 대표적인 언어로는 C#,Java로 메모리의 할당과 해제를 통한 메모리를 관리없이 언어자체적으로 메모리를 관리합니다.

 또한, 메모리를 구체적인 관리를 할수 없기 때문에 프로그래밍의 자유도가 낮으며 비정기적인 

 메모리 정리가 이루어집니다.


개인적인 생각으로 매니지드 언어를 공부해온 사람들은 언매니지드 언어를 사용을 할 때도 더 효율적인 코드를 작성할 수 있다고 생각합니다.

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

.Net Framework ( 닷넷 프레임워크 )  (0) 2017.08.14
Posted by Dongkey
,