我一直有一个很难试图找到类似这样的问题,任何事情,所以不是我会问这里。什么是“预定义”,并使用名称空间和std :: shared_ptr的正确方法是什么?
我有十几源/头文件的项目。我遇到的主要问题是预定义了我在名称空间中创建的类。代码如下:
“GlobalIncludes.h”
/*include dependencies and library headers...*/
/*[Note 1]How would I predefine the classes inside namespaces?*/
typedef std::tr1::shared_ptr<Class1> ClassPtr1;//[Note 2]
typedef std::tr1::shared_ptr<Class2> ClassPtr2;//[Note 2]
/*[Note 2]What is the correct way to predefine the shared_ptr's?*/
#include "Class1.h"
#include "Class2.h"
“Class1.h”
namespace myNamespace
{
class Class1
{
/*variables and functions*/
void doSomething(...);
Class2 exampleObject;
};
}
“Class2.h”
namespace myNamespace
{
class Class2
{
/*variables and functions*/
};
}
我提前道歉如果这听起来有点混乱...... 基本上我想知道是否可以预先定义是在类namespace myNamespace
,并在同一时间宣布shared_ptr
的。如果这是可能的,我将如何做到这一点,并在源中正确使用它们?
不要预先定义任何东西,它只会让你的代码变得不可读。通过使用名称空间说明符,每个人都可以确切地知道你的类型是什么,而不需要通过其他代码涉水。 (但这只是我的意见) – inf 2013-02-28 18:08:00