c++类实现命名空间
C++ class implementation namespace
我有文件MyClass.hpp
和MyClass.cpp
MyClass.hpp
class MyClass {
public:
void method1();
void method2();
};
MyClass.cpp
#include "MyClass.hpp"
void MyClass::method1() {
}
void MyClass::method2() {
}
我发现它有点傻,我必须写出MyClass::
每次我必须写一个方法实现。是否存在某种语法糖可以让我将所有实现组合在一起?
也许像
namespace MyClass {
void method1() {
}
void method2() {
}
}
我不介意使用c++ 11的特性,但是我想坚持使用可移植的解决方案。
编辑:我意识到上面写的代码是行不通的。我只是想用它来说明我想象中的一些语法糖是如何使事情变得更方便的。
不可能。
唯一的方法是直接在类定义中定义您的成员函数,这使它们成为inline
,并且可能是或可能不是您想要的。
我个人认为,在源文件中定义函数是值得的,必须在每个文件中输入一个类名。
不,没有别的办法。你必须重复MyClass::
不可能使用名称空间来标识方法。在一个命名空间中可以有几个类,非成员方法....由于类方法可以在任何源文件中定义(除了声明类本身的头文件),因此在定义方法时必须指定该方法属于哪个类。
相关文章:
- 命名空间中具有.h和.cpp文件的类
- 从父命名空间重载类型
- 在命名空间中定义函数还是限定函数
- 模板实现文件中的匿名命名空间
- 在命名空间内部还是外部实现 c++ 函数?
- 在实现文件中,我们应该更喜欢"using namespace"指令还是将实现包装在命名空间 { } 中?
- 我们可以使用命名空间实现封装吗?
- 如何在两个不同的命名空间(但只写一次)中使用相同的标头定义,命名空间有不同的实现?
- 如何在类中实现可选择的类似命名空间的功能?
- 扩展命名空间 std 以在使用 C++11 时实现make_unique
- 与自定义命名空间一起使用时实现 std::error_category、名称解析问题
- 在模板实现文件中使用命名空间
- 我应该在实现文件中使用未命名的命名空间吗
- 如何实现Casts实用程序命名空间
- 在C++中使用#define宏可以从不同的命名空间中选择实现
- 当在全局命名空间中覆盖new/delete时,我应该使用std-rtl中的new/delete的默认实现
- c++类实现命名空间
- C++编译器实现命名空间
- 在实现匿名命名空间中声明的函数时,未定义的引用链接器错误
- 友元函数在类中实现,在全局命名空间中调用