c++之函数

1.const成员函数

    const Date d2(d1);或者const Date d2=d1;//拷贝构造函数

void show() const

{

    cout<<_year<<"-"<<_month<<"-"<<_day<<endl;

}

Date* operator&()

{

    return this;

}

const Date* operator&() const//构成重载

{

return this;

}

2.内联函数:没有压栈的开销

inline int add(int a,int b)

{return a+b;}

①以空间换时间,省去调用函数额开销。代码很长或者有循环或者递归的函数不宜使用内联②inline对于预编译区而言只是一个建议。编译器会自动优化,如果定义为inline的函数体内有递归等等,编译器优化时会忽略掉内联。③inline必须和函数定义在一起,才能成为内联函数,仅将inline放在声明前是不起作用的。④定义在类内的成员函数默认定义为内联函数。

3.友元

class Date{

friend void show(const Date& d);//友元函数

friend AA;//友元类

friend ostream operator<<(ostream& out);

}

4.static成员

size_t Date::_count=;

static int GetCount()//无this指针

{

return _count;

}

5.N中构造拷贝构造的优化
Test1中调用了0次AA的拷贝构造函数,2次AA的赋值运算符函数的重载。
Test2中调用了1次AA的拷贝构造函数,2次AA的赋值运算符函数的重载。
Test3中调用了1次AA的拷贝构造函数,3次AA的赋值运算符函数的重载。
class AA
{};
AA f (AA a)
{
return a ;
}
void Test1 ()
{
AA a1 ;
a1 = f(a1);
}
void Test2 ()
{
AA a1 ;
AA a2 = f(a1);
}

void Test3 ()
{
AA a1 ;
AA a2 = f(f(a1));
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值