一个类的友元函数可以访问本类中的私有成员
在本类进行声明时,在类体中用friend 对该某函数进行声明, 该函数就成为本类的友元函数。
例如:
class Date; //原型声明
class Time
{ public:
Time(int h,int m,int s):hour(h),minute(m),sec(s){}
void display(Date &);
private: int hour,minute,sec;
};
class Date
{ public:
Date(int m,int d,int y):month(m),day(d),year(y){}
friend void Time::display(Date &); // Time 的函数 是 我的朋友了。
private: int month, day,year; // Date 私有 成员
};
void Time::display(Date &d)
{
cout <<dmonth<<":"<<dday<<":"<<dyear<<endl; //允许输出Date私有成员
cout <<hour<<":"<<minute<<":"<<sec<<endl;
}
调用例子:
Time t1(10,13,56); Date d1(12,25,2004); t1display(d1);
定义一个函数,就可以调用了啊
比如定义一个函数,实现参数a+参数b,返回值
int
fu_add(int
a,int
b)
{
return
a+b;
}
这是一个最简单的函数,函数名称为fu_add,函数有两个参数,int
a,int
b
函数将两个值相加,并返回相加的值
调用的时候
int
main()
{
int
nret;
nret
=
fu_add(5,6);
printf("调用函数后的结果为:%d",nret);
}
1函数的头文件:#include <stdlibh>
2函数的原型:int abs (int j);
3函数说明:abs()用来计算参数j 的绝对值,然后将结果返回。
4返回值:返回参数j 的绝对值结果。
5关于abs函数的实现:
(1)带if分支的利用补码特性:
正数的补码和原码相同;负数的补码是:补码=~(其正数的)原码+1。因此如果是负数求绝对值可以:(绝对值)原码=~(补码-1)
int _abs(signed int i)
{
if (i<0)
return ~(--i);
return i;
}
(2)带if分支(判断分支)的传统想法:
正数保持原样,负数取反
int _abs(singed int p)
{
return p>0p:-p;
}
(3)不带if分支(判断分支)的位运算:
int __cdecl _abs(signed int i)
{
return ((i >> 31) ^ i) - (i >> 31);
}
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)