Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/eclipse/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
c++;:有没有办法避免在每个成员函数之前键入类名? 我开始在5年前用java编程,所以当我2年前移到C++时,成员函数的实现相当恼人。 Foo::bar(){/*some stuff*/} Foo::baz(){/*some other stuff*/}_C++_Member Functions - Fatal编程技术网

c++;:有没有办法避免在每个成员函数之前键入类名? 我开始在5年前用java编程,所以当我2年前移到C++时,成员函数的实现相当恼人。 Foo::bar(){/*some stuff*/} Foo::baz(){/*some other stuff*/}

c++;:有没有办法避免在每个成员函数之前键入类名? 我开始在5年前用java编程,所以当我2年前移到C++时,成员函数的实现相当恼人。 Foo::bar(){/*some stuff*/} Foo::baz(){/*some other stuff*/},c++,member-functions,C++,Member Functions,当时我只是有点习惯了,但最近我想知道是否有任何方法可以构造代码以避免键入Foo::every函数,可能类似于: Foo::{ bar(){//some stuff} baz(){//some other stuff} } 我发现,即使两年后,我仍然难以阅读自己的代码,因为函数本身的名称并不是第一件事 编辑:由于这个问题是重复的,我想我会分享一件事,我发现点击链接。目前这显然是不可能的,但有一个方法可以将其添加到标准中。不知道它是否或何时会被添加,但如果几年后您正在阅读这篇文章,

当时我只是有点习惯了,但最近我想知道是否有任何方法可以构造代码以避免键入Foo::every函数,可能类似于:

Foo::{
    bar(){//some stuff}
    baz(){//some other stuff}
}
我发现,即使两年后,我仍然难以阅读自己的代码,因为函数本身的名称并不是第一件事

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

不,没有(除非您使用声明上下文定义一个成员函数,因此当您定义类时——这或多或少是Java中实际发生的情况)

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

// .h
struct S { void f(); };
// .cpp
void S::f() {}
您仍然可以这样做:

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

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

但在任何地方写公开或私人的东西都不会让人恼火;)问题是您的示例并不完全相同。@Logman:第二个示例增加了对
S::f()
的调用可以内联的可能性,但这两个调用在功能上是等效的。我还希望能够将类声明和实现分开。在这种情况下,我认为我不能既吃蛋糕又吃蛋糕?