[ C++�ŊJ�� ]

C++���O���

�@��C++�������������͖��O��Ԃ͂���܂���ł����BJava�Ɏ����߂Ă���W��C++�ɓ������Ƃ��ɁA���O��Ԃ�m���āA�����Java��package�Ɠ����悤�Ȃ��̂��Ȃ��Ǝv���܂����B


�N���X�������Ă���ƁA�N���X�����̖��O��`�̏Փ˂��l�����܂��B�Â��́A��`���̐擪�Ƀv���W�F�N�g�Ȃǂ̖��̂�ړ����Ƃ��ĕt�^������@������Ă��܂������A���O��Ԃ��g�p����ƌ��ʓI�ȊǗ����ł���悤�ɂȂ�܂��B

�܂��AUML�ɂ��݌v�����Ă���ꍇ�A�p�b�P�[�W����������̂ɖ��O��Ԃ��g���܂��B

���O��Ԃ̎g�p���@

���O��Ԃ̒��Ɍ^��`���s��

���O��Ԃ��w�肵�Ċ֐��錾�A�萔��`�A�^��`������ꍇ�Anamespace ���O { ... } �ň͂��܂��B�ʏ킱���̓w�b�_�t�@�C���ɋL�q���邱�ƂɂȂ�܂��B

namespace torutk {

void clear_list();
const int MAX_LIST = 1024;
typedef unsigned char BYTE; 
class Person {
};

}

���O��Ԃ̒��ɔz�u�����֐��̒�`���\�[�X�t�@�C���ɋL�q����ꍇ���Anamespace ���O {...}�ň͂��܂��B������̓\�[�X�t�@�C���ɋL�q���܂��B

namespcace torutk {

void clear_list()  // ���O���torutk����clear_list�֐��̒�`
{
    // :
}

Person::Person()  // ���O���torutk���̃N���XPerson�̃����o�֐���`
{
    // :
}

}

namespace ���O { ... }�ɂ�閼�O��Ԃ̒�`�́A�������Ŏg�p�ł��܂����A�ʂȃt�@�C���ł��g�p�ł��܂��B

��L�̑�֕��@�Ƃ��āA�X�R�[�v�������Z���g���Ē�`������@������܂��B

void torutk::clear_list()  // ���O���torutk����clear_list�֐��̒�`
{
    // :
}

torutk::Person::Person()  // ���O���torutk���̃N���XPerson�̃����o�֐���`
{
    // :
}

���O��Ԃ̒��ɒ�`���ꂽ���O�𗘗p

���O��Ԃ̒��ɒ�`���ꂽ���O(�V���{���j���g�p����ɂ́A���̂R�‚̕��@������܂��B

  1. �X�R�[�v�������Z�q���g���Ė��O�����S�L�q����
  2. using�錾���g���ăR���p�C���P�ʁi�t�@�C���j�Ŏg�p���閼�O�̖��O��Ԃ��w�肷��
  3. using�f�B���N�e�B�u���g���Ďw�肵�����O��Ԃ��O���[�o���Ɠ����Ɉ����グ��

�ǂ̕��@���]�܂������͋c�_�����邩������܂��񂪁A�l�͂����ɋ��������ɗD��x��t���邱�Ƃ��悢�ƍl���Ă��܂��B

�X�R�[�v�������Z�q���g���Ė��O�����S�L�q

��ԕ�����₷���Ǝv���܂��B

int main()
{
    torutk::clear_list();
    torutk::Person tom("Tom Bonbadil");
    // :
}

using�錾���g�p

���O�̊��S�L�q��using�Ŏw�肷��ƁA�ȍ~���O�𒼐ڎg�p���邱�Ƃ��ł��܂��B

using torutk::clear_list;
using torutk::Person;

int main()
{
    clear_list();
    Person tom("Tom Bonbadil");
    // :
}

using�f�B���N�e�B�u���g�p

���O��Ԃ�using�Ŏw�肷��ƁA�ȍ~���̖��O��ԓ��Ő錾�E��`����閼�O(�V���{���j�͂��ׂăX�R�[�v�������Z�q�Ȃ��ɒ��ڎg�p�ł��܂��B�����������O��Ԃɂ���Ė��O�̏Փ˂��Ȃ������Ƃ��Ă���̂ɁA������g���Ă��܂��Ă͏Փ˂������������̂��ƂƂȂ�܂��BC++����̓���L���⏑�Ђ�����ƁA�����Ă����̕��@���g���Ă��܂��B���������̂ł��B

using namespcae torutk;

int main()
{
    clear_list();
    Person tom("Tom Bonbadil");
    // :
}

���O��Ԃ̊K�w��

���O��Ԃ͊K�w�I�Ɂi����q�Ɂj�\�����邱�Ƃ��ł��܂��B

namespcae torutk {
namespcae network {
namespcae que {

class RemoteQue {
    // :
};

}
}
}

���̏ꍇ�Atorutk::network::que::RemoteQue �̂悤�Ɏg�p���܂��B

���O��Ԃ̎Q�Ƃ́A���O��ԃg�b�v����̐�΃p�X�I�Ȏw����@�A���΃p�X�I�Ȏw����@�A���ꖼ�O��ԓ��̎w�肪����܂��B

���Ƃ��΁A���̂悤�Ȗ��O��Ԃ̍\���ɂȂ��Ă����ꍇ�A

  +--- network
  |      +--- que
  +--- que

���O���network�̍\���v�f����que::MyQue�Ǝw�肵���ꍇ�Anetowrk::que::MyQue�Ɖ��߂���܂��B

���O��Ԃ̃G�C���A�X

C++�͕��G�Ȍ���ł��B���O��Ԃ�ʂȖ��O��Ԗ��ɒu�������邱�Ƃ܂łł��܂��B

namespace netque = torutk::network::que;

int main()
{
    netque::RemoteQue que("localhost:1092");
    // :
}

�������O���

���ӓ_

�w�b�_�t�@�C����using�f�B���N�e�B�u���g��Ȃ�

�w�b�_�t�@�C������using�f�B���N�e�B�u���g�p����ƁA�w�b�_�t�@�C�����C���N���[�h����\�[�X�t�@�C���Ɏv��ʕ���p�������܂��B�w�b�_�t�@�C���ɋL�q�����Ɨ��p�҂����䂷�邱�Ƃ��ł��Ȃ��Ȃ�܂��B����͋ւ���Ǝv���悤�ɂ��Ă��܂��B