c++中。友员函数的实现

c++中。友员函数的实现,第1张

一个类的友元函数可以访问本类中的私有成员

在本类进行声明时,在类体中用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);

}

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/12156142.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-21
下一篇 2023-05-21

发表评论

登录后才能评论

评论列表(0条)

保存