C++ 什么';在命名空间块中定义类方法与使用以下方法定义它们之间的区别:
例如:C++ 什么';在命名空间块中定义类方法与使用以下方法定义它们之间的区别:,c++,class,namespaces,C++,Class,Namespaces,例如: // Example.h namespace MyExample { class Example { void Print() const; }; } 这样做的区别是什么: // Example.cpp namespace MyExample { Example::Print() const { ... } } // Example.cpp MyExample::Example::Print()
// Example.h
namespace MyExample
{
class Example
{
void Print() const;
};
}
这样做的区别是什么:
// Example.cpp
namespace MyExample
{
Example::Print() const
{
...
}
}
// Example.cpp
MyExample::Example::Print() const
{
...
}
这样做:
// Example.cpp
namespace MyExample
{
Example::Print() const
{
...
}
}
// Example.cpp
MyExample::Example::Print() const
{
...
}
两者的优点/缺点是什么?编译器没有区别 但是,您会注意到,某些IDE在生成代码时更喜欢第二种解决方案(如Eclipse CDT):
- 读取定义时,可以立即清楚地知道函数位于哪个名称空间中,无需向上滚动文件
- 它避免了与嵌套名称空间的混淆
- 它限制了编辑器中代码的嵌套(在解决方案1中,每个名称空间块为其中定义的代码添加一个全新的缩进)
- 如果在源文件中grep指定名称空间名称,您将更容易找到在其中声明的函数
- 读取定义时,可以立即清楚地知道函数位于哪个名称空间中,无需向上滚动文件
- 它避免了与嵌套名称空间的混淆
- 它限制了编辑器中代码的嵌套(在解决方案1中,每个名称空间块为其中定义的代码添加一个全新的缩进)
- 如果在源文件中grep指定名称空间名称,您将更容易找到在其中声明的函数
- 读取定义时,可以立即清楚地知道函数位于哪个名称空间中,无需向上滚动文件
- 它避免了与嵌套名称空间的混淆
- 它限制了编辑器中代码的嵌套(在解决方案1中,每个名称空间块为其中定义的代码添加一个全新的缩进)
- 如果在源文件中grep指定名称空间名称,您将更容易找到在其中声明的函数
- 读取定义时,可以立即清楚地知道函数位于哪个名称空间中,无需向上滚动文件
- 它避免了与嵌套名称空间的混淆
- 它限制了编辑器中代码的嵌套(在解决方案1中,每个名称空间块为其中定义的代码添加一个全新的缩进)
- 如果在源文件中grep指定名称空间名称,您将更容易找到在其中声明的函数
- 编译器没有区别
但是,您会注意到,某些IDE在生成代码时更喜欢第二种解决方案(如Eclipse CDT):
- 编译器没有区别
但是,您会注意到,某些IDE在生成代码时更喜欢第二种解决方案(如Eclipse CDT):
- 编译器没有区别
但是,您会注意到,某些IDE在生成代码时更喜欢第二种解决方案(如Eclipse CDT):
- 两者在技术上是相同的。但是,当您在文件中定义了该名称空间的许多函数时,如果您不是特别喜欢使用名称空间名称来限定每个函数,您可以使用前者来避免额外的键入
当然,后一种形式对某些人来说可读性更好,而且是主观的。两者在技术上是相同的。但是,当您在文件中定义了该名称空间的许多函数时,如果您不是特别喜欢使用名称空间名称来限定每个函数,您可以使用前者来避免额外的键入
当然,后一种形式对某些人来说可读性更好,而且是主观的。两者在技术上是相同的。但是,当您在文件中定义了该名称空间的许多函数时,如果您不是特别喜欢使用名称空间名称来限定每个函数,您可以使用前者来避免额外的键入
当然,后一种形式对某些人来说可读性更好,而且是主观的。两者在技术上是相同的。但是,当您在文件中定义了该名称空间的许多函数时,如果您不是特别喜欢使用名称空间名称来限定每个函数,您可以使用前者来避免额外的键入
当然,后一种形式对某些人来说可读性更好,而且更具主观性。没有区别,只是后一种形式更详细。没有区别,只是后一种形式更详细。没有区别,只是后一种形式更详细。没有区别,只是后一种形式更详细。没有区别,只是后者要详细得多。