11/11/2009

c++ namespace, class print

c++ namespace, class print

#include

namespace A
{
class B
{
public:

B() {}
void print()
{
printf("%s:%d .....\n",
__PRETTY_FUNCTION__, __LINE__);
}
};
};

int main(int argc, char** argv)
{
A::B b;
b.print();
return 0;
}

result

void A::B::print():13

std::list and find class object.

#include
#include
#include
#include
#include

class PERSON {
public:
size_t m_no;
std::string m_name;

public:
PERSON(size_t no, const char* name)
{
m_no = no;
m_name = name;
}

int operator==(const PERSON& p) const
{
return (p.m_no == m_no && p.m_name == m_name);
}
};

typedef std::list PersonList;
typedef std::list::iterator PersonListIt;

int get_random(size_t lo, size_t hi)
{
return (int)((double)rand() /
((double)RAND_MAX + 1) * (++hi - lo) + lo);
}

int main()
{
PersonList list;

srandom(getpid() * time(0));

for (size_t i=0; i<10; i++)
{
list.push_back(PERSON(get_random(1, 100), "ddd"));
}
printf("orig...\n");
PersonListIt it = list.begin();
while (it != list.end())
{
PERSON& p = *it;
printf("no:%d name:%s\n", p.m_no, p.m_name.c_str());
it++;
}

PersonListIt findIt = find(list.begin(), list.end(), PERSON(4, "ddd"));
if (findIt != list.end())
{
printf("found...\n");
}

return 0;
}


orig...
no:14 name:ddd
no:54 name:ddd
no:12 name:ddd
no:70 name:ddd
no:100 name:ddd
no:43 name:ddd
no:43 name:ddd
no:37 name:ddd
no:63 name:ddd
no:64 name:ddd

위 예제는, std::list에 PERSON이라는 객체를 집어넣고
find을 이용해서 찾는 예제입니다.

11/06/2009

ln -s and rm

symbolic link

ln -s (src dir) (symbolic name)


remove symbolic link.

rm (symbolic name) -- correct.
rm (symbolic name)/ -- incorrect.

11/04/2009

pointer pointer array - for memory

#define MAX_PATH 128

class TestPointer
{
private:
char strBuffer** m_pstrBuffer;
public:
void read_text_file( char* _strFileName );
};
void TestPointer::read_text_file( char* _strFileName )
{
int strNum;
//...........

m_pStrBuffer = (char**)new char[strNum];


m_pStrBuffer = (char*)new char[MAX_PATH];

char szbuf[128];
fprintf( fp, "%s", szbuf );
strcpy( m_pStrBuffer[index], szbuf );

}

void clear(void)
{
for( int i = 0; i < strNum; ++i )
delete m_pStrBuffer[index];

delete m_pStrBuffer;

}