C++ 重载构造函数

来源:互联网 发布:人才网站源码 编辑:程序博客网 时间:2024/06/08 00:51

 1. 重载构造函数

  构造函数也具备了重载的特性。

#include <iostream>
using namespace std;
class rectangle
{
public:
rectangle(){cout<<"构造一个长方形a!\n";}
rectangle(int l,int w){length=l;width=w;cout<<"长方形b的面积为:" << 
       length * width <<endl;}
rectangle(int l,int w,int h){length=l;width=w;height=h;cout<<"长方体c的体积为:" <<length*width*height<<endl;}
private:
int length;
int width;
int height;
};
void main()
{
rectangle a;
rectangle b(3,4);
rectangle c(3,4,10);
}

2. 成员变量的初始化

1)对成员变量进行初始化有许多方式,一个是在构造函数体中进行难过初始化。

对象a在构造的同事调用构造函数,构造函数通过接收参数将参数传递到函数体中,然后又分别赋给私有变量length和width,完成了对成员变量的初始化工作。


2)另外还有一种方式就是在构造函数的函数头进行初始化。

rectangle () :length(3),width(4){}

  在构造函数的右边有个冒号(:),然后是成员变量的名称和一对小括号(),小括号中要是初始化的值或者表达式。如果对多个成员进行初始化,那么要用逗号将他们隔开,最后

一对大括号{},大括号中就是函数索要执行的功能。


  //const成员或者引用成员都是不可赋值的,因此只能进行初始化。
#include <iostream>
using namespace std;
class A
{
public:
  //A(int a,int b){num=a;total=b;} //错,不能进行赋值
A(int a,int b):num(a),total(b){}
private:
  const int num;
  int &total;
};
int main()
{
  A a(3,4);
  return 0;
}




0 0
原创粉丝点击