2 qq906237201 qq906237201 于 2016.04.21 14:35 提问

类的友元函数是命名空间的成员吗?

在一个名称空间里面声明了一个类,在名称空间外定义,在这个类里面声明了一个友元函数,那么这个友元函数是不是原来名称空间的成员?
因为我实现这个友元的时候没有加命名空间限定,它自己认为自己是名称空间里的成员。
另外(与上无关),类的友元函数是不用事先声明的吧,现在类写到这了,需要友元,我就声明个友元,然后在类后面实现它就好了,是这样吗?或者我也可以事先声明,在类前声明,在类里加friend,类后再实现也是可以的是吗?

2个回答

caozhy
caozhy   Ds   Rxr 2016.04.22 05:50

看友元函数自己的定义,放在命名空间里就是属于这个命名空间,反之就不是。

CSDNXIAOD
CSDNXIAOD   2016.04.21 14:42

关于友元函数无法访问类中私有成员等问题
友元函数 无法访问 类私有成员
友元函数 无法访问 类私有成员
----------------------biu~biu~biu~~~在下问答机器人小D,这是我依靠自己的聪明才智给出的答案,如果不正确,你来咬我啊!

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐
C++访问类的私有成员变量的方法(友元函数、友元类)
// win32Test.cpp : Defines the entry point for the console application. // #include "stdafx.h" class A { public:  A(){;}  ~A(){;} public:  int fun(A& one)  {   //表达式1:错误   //return one.fun
C++友元函数访问类的私有成员
在一些工程中我们经常需要访问某些类的静态成员,添加一个友元函数可以达到我们的目的。#include <iostream>#include<cstring>using namespace std ;class Student{private:string  name; int age; int sore;public:Student(string name,int age,i...
友元函数 无法访问 类私有成员
#include<iostream>  02usingnamespacestd;  03classcylinder  04{  05    friendistream operator>>(istream& is,cylinder &cy);  06public:      07    inlinedoublesquare()  08    {       returnlength*(width+height)*2+width*height*2;    }  09    inlinedoublevolume
C++中友元函数和成员函数的区别
什么是友元函数:     指某些虽然不是类的成员却能够访问类的所有成员的函数 为什么要使用:     为了使其他类的成员函数来访问该类的私有变量 什么时候使用:     可以用于运算符重载     两个类共享数据 调用方式:     不是类的成员函数,调用时不通过对象 存在位置:     可以在类内声明,类外定义,可放在类的私有段或公有段,放在私有段和公有段无区别。 什么
使用友元函数实现用外部函数修改类内的私有数据成员
// lianxi4.1.cpp : 定义控制台应用程序的入口点。 // #include "stdafx.h" #include using namespace std; class ClassAdd { private: int x; int y; public: friend int ModifyMember(ClassAdd &Ca,int a,int b);//定义友元函数时注
一个类的成员函数声明为另一个类的友元函数
友元提供了不同类的成员函数之间、类的成员函数与一般函数之间进行数据共享的机制。通过友元,一个不同函数或另一个类中的成员函数可以访问类中的私有成员和保护成员。c++中的友元为封装隐藏这堵不透明的墙开了一个小孔,外界可以通过这个小孔窥视内部的秘密。 友元的正确使用能提高程序的运行效率,但同时也破坏了类的封装性和数据的隐藏性,导致程序可维护性变差。 友元提供了不同类的成员函数之间、类的成员函
友元函数与成员函数的一点区别
最近,学习友元函数,发现友元函数可以操作成员变量,包括私有成员变量。 但是,友元函数和类的成员函数相比,还是有区别。 例如,在友元函数中,无法直接操作成员变量。必须要现有一个类的对象,再通过这个对象使用圆点操作符 void   friendFunction(classA   &temp)   //此处使用了传引用调用,传递一个类的对象进来,并且可以直接更改里面的值 { t
友元(友元函数、友元类和友元成员函数) C++
有些情况下,允许特定的非成员函数访问一个类的私有成员,同时仍阻止一般的访问,这是很方便做到的。例如被重载的操作符,如输入或输出操作符,经常需要访问类的私有数据成员。 友元(frend)机制允许一个类将对其非公有成员的访问权授予指定的函数或者类,友元的声明以frend开始,它只能出现在类定义的内部,友元声明可以出现在类中的任何地方:友元不是授予友元关系的那个类的成员,所有它们不受其声明出现部分的访
一个类的成员作为另一个类的友元函数
普通成员函数作为一个类的友元函数,以及一个类作为另一个类的友元类,都好
将类的成员函数作为回调函数(外一篇:友元函数)
转自:http://blog.csdn.net/xylary/article/details/1548596 将类成员函数用做C回调函数 提出问题:  回调函数是基于C编程的Windows SDK的技术,不是针对C++的,程序员可以将一个C函数直接作为回调函数,但是如果试图直接使用C++的成员函数作为回调函数将发生错误,甚至编译就不能通过。 分析原因: 普通的C+