pimple idiom C++
20121204
1.头文件不参与编译。
2.三个类A,B,C
A.cpp中包含B.h则A.h中可以定义B类变量,也可以定义B指针变量。
如果C.cpp中需要包含A.h则,编译不过,C.cpp需要两次包含B.h
如果A.h中定义的是B指针变量,则可以用pimple语法
3.A.cpp的包含次序为B.h然后是A.h
否则头文件中类变量编译不过。指针变量则不受次序限制。
20121202
我知道这种用法,但是不知道这属于什么语法,请教高手。
在源文件.cpp中包含(#include)一个类的头文件,在头文件中使用这个类。
只能在头文件中定义指针变量,并且要用一种特别的语法:
namespace oracle
{
namespace occi
{
class CFor;
}
}
// 使用者
// 头文件
#pragma once
namespace oracle
{
namespace occi
{
class CFor;
}
}
class CUse
{
public:
CUse(void);
~CUse(void);
public:
oracle::occi::CFor *m_pFor;
};
// 源文件
#include "Use.h"
#include "For.h"
CUse::CUse(void)
{
m_pFor->test();
}
CUse::~CUse(void)
{
}
// 被使用者
// 头文件
#pragma once
namespace oracle
{
namespace occi
{
class CFor
{
public:
CFor(void);
~CFor(void);
public:
void test();
};
}
}
// 源文件
#include "For.h"
using namespace oracle::occi;
CFor::CFor(void)
{
}
CFor::~CFor(void)
{
}
void CFor::test()
{
}
// 头文件
#pragma once
namespace oracle
{
namespace occi
{
class CFor;
}
}
class CUse
{
public:
CUse(void);
~CUse(void);
public:
oracle::occi::CFor *m_pFor;
};
// 源文件
#include "Use.h"
#include "For.h"
CUse::CUse(void)
{
m_pFor->test();
}
CUse::~CUse(void)
{
}
// 被使用者
// 头文件
#pragma once
namespace oracle
{
namespace occi
{
class CFor
{
public:
CFor(void);
~CFor(void);
public:
void test();
};
}
}
// 源文件
#include "For.h"
using namespace oracle::occi;
CFor::CFor(void)
{
}
CFor::~CFor(void)
{
}
void CFor::test()
{
}
url:http://greatverve.cnblogs.com/archive/2012/12/02/cpp-what.html
我这个博客废弃不用了,今天想寻找外链的时候,突然想到这个博客权重很高。
有需要免费外链的,留言即可,我准备把这个博客变成免费的友情链接站点。