c++:有什么方法可以避免在每个成员函数之前键入类名?

标签 c++ member-functions

<分区>

我 5 年前开始用 java 编程,所以当我 2 年前转向 c++ 时,成员函数的实现相当令人恼火。

Foo::bar(){/*some stuff*/}
Foo::baz(){/*some other stuff*/}

那时候我只是有点习惯了,但最近我想知道是否有任何方法可以构造代码以避免在每个函数中键入 Foo::,可能是这样的:

Foo::{
    bar(){//some stuff}
    baz(){//some other stuff}
}

我发现即使在 2 年后我仍然无法阅读我自己的代码,因为函数名称本身并不是一行中的第一件事。

编辑:由于这个问题是重复的,我想我会分享一件我在点击链接时发现的事情。目前这绝对不可能,但有一个 proposal将其添加到标准中。不知道它是否或何时会真正被添加,但如果你在几年后阅读这篇文章,这可能是一个很好的线索。

最佳答案

不,没有(除非你定义一个成员函数与其声明相关联,因此当你定义你的类时 - 这或多或少是在 Java 中实际发生的事情)。

换句话说,如果你不想这样做:

// .h
struct S { void f(); };
// .cpp
void S::f() {}

您仍然可以这样做:

// .h
struct S { void f() {} };

无论如何它都有缺点,你不能准备好在任何情况下处理它们。

关于c++:有什么方法可以避免在每个成员函数之前键入类名?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40568823/

相关文章:

c++ - 如何将函数赋值给函数指针?

c++ - 在 C++ 中使用线程调用具有多个参数的非静态函数

c++ - 为什么 std::tie 不能与 const 类方法一起使用?

c++ - C++ 中单冒号 ":"的重要性

c++ - 获取缺陷对象的坐标值

C++:如何复制数据类型?

c++ - Qt 计算器问题 - C++

c++ - 写入输出迭代器的模板成员函数

c++ - 通过指针调用函数而不从对象分配内存

c++ - 如何使用前向声明类的成员函数?