(二)函数相关-创新互联

首先来说c++中将函数的声明以及定义是分开的
例如:
class Demo{
  //这里注意的是c++的特有定义方法
  public:
    //声明函数
    void getDemo();
    void setDemo();
  private:
    //声明成员
    int i;
    int x;
  //定义函数方法一:
  void getDemo(){
    //do things
  }
  void setDemo(){
    //do things
  }
}
//定义函数方法二
void Demo::getDemo(){
  //do things
}
void Demo::setDemo(){
  //do things
}
内联函数(二)函数相关
//在c++中 一般来说定义了一个函数后,编译器就会在内存中为其创建一个指令集,当我们调用这个函数时,程序就会跳转到该指令集处.当该
//函数运行完毕后,程序又会返回到原来执行调用该函数的下一行继续执行.加入对该函数执行了上百次调用,那么就要来回跳转上百次,很明显
//这是相当影响程序执行效率的。所以就有了内联函数,即:用关键字inline声明函数。这样编译器将不会创建真正的函数,而只是将这个内联
//函数的所有代码拷贝到调用函数中,这样程序在执行调用该函数时就不需要来回跳转,自然就会提供了程序运行时的效率,但是如果程序调用了
//内联函数一百次,那么就要将该内联函数中的代码复制一百次,无形中增加了程序的体积,所以内联函数大多使用体积比较少的函数中
//当方法的声明与定义在同一行时也为内联函数

//个人看法:虽然内联函数减少了编译器的跳转次数,但是对于copy函数来说也无形中的增加了电脑cpu的负载(cpu的运行原理就不说了,不知
//道的自己找些资料吧),所以总体来说可能是c++语言的编译器本身设计不合理,当然我只是随便评论,毕竟做c++语言是群很牛的人这样做或许
//有着不为人知的道理?欢迎大家纠正我的观点 来尽情的喷我吧^_^!

//如果是在当前类里 c++是不需要加 public等权限修饰符的
inline int print();
int print(){
  return 1;
}

const成员函数

创新互联建站是一家集网站建设,滨城企业网站建设,滨城品牌网站建设,网站定制,滨城网站建设报价,网络营销,网络优化,滨城网站推广为一体的创新建站企业,帮助传统企业提升企业形象加强企业竞争力。可充分满足这一群体相比中小企业更为丰富、高端、多元的互联网需求。同时我们时刻保持专业、时尚、前沿,时刻以成就客户成长自我,坚持不断学习、思考、沉淀、净化自己,让我们为更多的企业打造出实用型网站。
//如果你不想让某个成员函数修改成员变量的值,那么不妨将这个成员函数声明为const,相当于java中的final
class A{
  public :
    void func(int x,int y){i=x;j=y}
    //const的使用,通常放在()的后面,{}的前面
    void print()const{cout<<"两数相乘为:"<  private :
    int i;
    int j;
  }
 //对于不应当改变对象的成员函数都应该声明为const,这样假如该成员函数试图去修改该对象的成员变量,编译器会提示错误,从而达到
 //帮助你查错的目的。
int main(){
  A a;
  a.func(1,2);
  a.print();
  A b;
  b.func(3,4);
  b.print();
  return 0;
}

析构函数

//析构函数与构造函数想法,构造函数用于构造一个对象,析构函数则用于对对象被销毁后清除它所占用的内存空间,比如说它可以清除由析构
//函数创建的内存。
//注意:一个类只能有一个析构函数,无乱你以什么形式来重载析构函数,都会导致出错

#include
//使用命名空间
using namespace std;
class A
{
  public:
    A(){}
   //析构函数,与构造函数的差别在于多了一个 ~符号 ,此方法是在类注销时调用。
    ~A(){}
}

析构对象数组

//当要声明很多对象,那么可以将对象声明到一个数组中
int main(){
  //编号为0的对象 以及编号为1的对象
  //在创建由两个对象组成的数组时,会先创建对象即调用两次构造函数
  //在调用结束后,会再调用两次析构函数进行内存释放
  A a[2];
  return 0;
}

本文标题:(二)函数相关-创新互联
网页路径:http://scyanting.com/article/cepoii.html