首先,抱歉我的英语不好。
好的,我正在编写一个执行特定进程的程序。这个进程需要定义一些类和函数。所有这些都必须组织成块以便访问它们。
我的第一个想法是使用命名空间(C ++),以获得这样的结果:
在
然后,我必须能够使用
我已经测试过这个简单的整数值并且它有效。名称空间组合在一起,我可以访问值而没有任何警告(我使用了
那么,这种名称空间组合是正确的还是不正确的?也许它可以工作,但我可能不应该使用它,我不知道。
此外,我想知道导入“主”头文件(导入其他头文件)的这个过程是否正确(我使用所需的
所以,请帮我确认这是否正确。
好的,我正在编写一个执行特定进程的程序。这个进程需要定义一些类和函数。所有这些都必须组织成块以便访问它们。
我的第一个想法是使用命名空间(C ++),以获得这样的结果:
namespace LoadSystem
{
namespace ParseBlock1
{
class ClassA {...}
class ClassB {...}
class ClassC {...}
}
namespace ParseBlock2
{
class ClassA {...}
class ClassB {...}
class ClassC {...}
}
}
因此,我在阅读中得出最好的想法是否这个是好的。我已经阅读到不应该使用大量嵌套的命名空间,因此,对于我的目的,最小级别为两个,如上所示。
我的目标是能够将更多的ParseBlocks
添加到LoadSystem
命名空间中。它将存储在单个.h
文件中,因此只会有类的接口。由于每个块可能有很多类,我想将每个块的定义拆分到其他.h
文件中,以尽可能保持主.h
文件的小巧。
因此,我想到了定义一个block1.h
和block2.h
文件,每个文件都有像这样的结构:
namespace LoadSystem
{
namespace ParseBlock1
{
class ClassA {...}
class ClassB {...}
class ClassC {...}
}
}
并且
namespace LoadSystem
{
namespace ParseBlock2
{
class ClassA {...}
class ClassB {...}
class ClassC {...}
}
}
在
load_system.h
文件中导入它们。每次添加另一个块时,我编写所需的文件,最后只需将新的blockX.h
导入主load_system.h
即可。然后,我必须能够使用
LoadSystem::ParseBlock1::Class1
或LoadSystem::ParseBlock2::Class1
从同一命名空间访问两个块。我已经测试过这个简单的整数值并且它有效。名称空间组合在一起,我可以访问值而没有任何警告(我使用了
gcc -Wall -Werror -Wextra -pedantic
)。那么,这种名称空间组合是正确的还是不正确的?也许它可以工作,但我可能不应该使用它,我不知道。
此外,我想知道导入“主”头文件(导入其他头文件)的这个过程是否正确(我使用所需的
#ifndef
,#define
和#endif
宏来防止多次导入),我正在使用类似于这样的东西:# ifndef LOAD_SYSTEM_H_
# define LOAD_SYSTEM_H_
# include "block1/block1.h"
# include "block2/block2.h"
# endif
所以,请帮我确认这是否正确。