Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/138.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++ 选择使某个函数成为成员、非成员、私有、公共等_C++_Member_Non Member Functions - Fatal编程技术网

C++ 选择使某个函数成为成员、非成员、私有、公共等

C++ 选择使某个函数成为成员、非成员、私有、公共等,c++,member,non-member-functions,C++,Member,Non Member Functions,我已经搜索了关于成员函数和非成员函数之间区别的描述,虽然我仍然很困惑,但我想我应该举个例子来澄清一下。这里有一个问题来自我们的老师作为学习材料给我们的一个旧测试: 假设我们有一个main()程序,它使用文本中的queue2.h和node2.h模板实现,创建一个字母队列(queue letters) 我们想编写一个流操作符,将字符串(东西)的所有字符插入队列(字母(b)如果我们这样做,很难说我们不知道您上面描述的程序的真正目的。我可以给您一个大致的答案 发挥作用 如果您希望任何人都可以访问它,则为

我已经搜索了关于成员函数和非成员函数之间区别的描述,虽然我仍然很困惑,但我想我应该举个例子来澄清一下。这里有一个问题来自我们的老师作为学习材料给我们的一个旧测试:

假设我们有一个main()程序,它使用文本中的queue2.h和node2.h模板实现,创建一个字母队列(queue letters)


  • 我们想编写一个流操作符,将字符串(东西)的所有字符插入队列(字母(b)如果我们这样做,很难说我们不知道您上面描述的程序的真正目的。我可以给您一个大致的答案

    发挥作用

  • 如果您希望任何人都可以访问它,则为PUBLIC
  • 如果您只想访问该类的成员函数和好友,则为PRIVATE
  • 如果只希望访问该类的成员函数和好友以及派生类的成员函数和好友,则受保护
  • 如果您想访问私人成员的类,请选择FRIEND
  • 就会员和非会员而言,同样很难说不知道
    有关实现的详细信息。如果函数必须访问类的私有成员,则它必须是成员函数。

    将需要访问私有数据成员的内容设置为成员函数,而不需要访问私有数据成员的内容设置为成员函数(或不必为成员函数)自由函数。我同意成员函数通常应该在朋友函数上使用,而不是在非朋友自由函数上使用。@chris:你是说C型函数吗?你能解释一下吗?我的意思是,如果一个函数不需要访问类的私有部分,为什么要赋予它这样做的能力?@chris:是的,在这种情况下,我们可以使用非f型函数朋友,非成员函数。