C++;类中的helper函数,如何使用它们? 在我的C++类中,我想编写一个辅助函数(外部用户不能看到或使用),找到2种方法:

C++;类中的helper函数,如何使用它们? 在我的C++类中,我想编写一个辅助函数(外部用户不能看到或使用),找到2种方法:,c++,class,methods,C++,Class,Methods,1)在.h文件中将其声明为私有,并在.cpp文件中编写实现 2)直接在.cpp文件中写入实现,而不在.h文件中声明 正确的方法是什么,两者的区别或优势是什么?由于您没有通过接口公开此函数,因此不应在公共头文件中声明它。如果在单个cpp文件中使用它,请在该cpp文件中的匿名命名空间中声明它。如果您在多个cpp文件中使用此函数,但仍不想将其作为界面的一部分,则可以创建内部头文件,该头文件包含在源文件中,但不是库公共界面的一部分 由于您没有通过接口公开此函数,因此不应在公共头文件中声明它。如果在单个c

1)
.h
文件中将其声明为私有,并在
.cpp
文件中编写实现

2)直接在
.cpp
文件中写入实现,而不在
.h
文件中声明


正确的方法是什么,两者的区别或优势是什么?

由于您没有通过接口公开此函数,因此不应在公共头文件中声明它。如果在单个cpp文件中使用它,请在该cpp文件中的匿名命名空间中声明它。如果您在多个cpp文件中使用此函数,但仍不想将其作为界面的一部分,则可以创建内部头文件,该头文件包含在源文件中,但不是库公共界面的一部分

由于您没有通过接口公开此函数,因此不应在公共头文件中声明它。如果在单个cpp文件中使用它,请在该cpp文件中的匿名命名空间中声明它。如果您在多个cpp文件中使用此函数,但仍不想将其作为界面的一部分,则可以创建内部头文件,该头文件包含在源文件中,但不是库公共界面的一部分

方法是创建一个对公众可见的类a,然后创建该类的子类B并私下实现它。然后,当您被要求创建一个A*时,创建一个B*,它也是一个A*,并返回它。代码看到的是B*,但类的用户看到的是a*,只能访问a中声明的方法和变量。您还需要使用某些函数而不是new/delete创建/销毁指针


很像COM实现IUnknown之类的东西

方法是创建一个对公众可见的类a,然后创建该类的子类B并私下实现它。然后,当您被要求创建一个A*时,创建一个B*,它也是一个A*,并返回它。代码看到的是B*,但类的用户看到的是a*,只能访问a中声明的方法和变量。您还需要使用某些函数而不是new/delete创建/销毁指针


很像COM实现IUnknown之类的东西

如果您不在类中声明函数,它将无法访问私有成员。这在很大程度上取决于您通过调用函数来实现什么。@cigien那么1和2都是相同的吗?如果您不在类中声明函数,它不能访问私有成员。这在很大程度上取决于你想实现什么。你通过调用函数来使用它们。@cigien那么1和2都是一样的吗?