Return to the Basic – 构造函数(Constructor),析构函数(Destuctor)

通过构造函数,使对象在创建时就可以对自身进行初始化。
- 构造函数名和类名相同。
- 构造函数是没有返回类型的。(C++中,不需要返回值. 用 void 返回类型也不行)

class queue{
	int q[20];
	int front,rear;
public:
	queue(); //构造函数
	void qput(int i);
	int qget():
};

queue::queue(){
	front=rear=0;
	cout<<"Queue is initialized.\n";
}

通过析构函数来销毁对象。
- 析构函数的名和类名相同,但是多了个~(取反)符号。
- 也没有返回类型。

- 析构函数不能带参数。(在销毁对象的时候,没有办法将参数值传递给析构函数)

class queue{
	int q[20];
	int front,rear;
public:
	queue(); //构造函数
	~queue(); //析构函数
	void qput(int i);
	int qget():
};

queue::queue(){
	front=rear=0;
	cout<<"Queue is initialized.\n";
}

queue::~queue(){
	cout<<"Queue is destroyed.\n";
}

 

构造函数参数化
- 创建对象的时候,为对象的成员变量设定初始值。

class queue{  
    int q[20];  
    int front,rear;  
    int myid;  //保存队列的ID值.
public:  
    queue(int id); //给构造函数传递参数
    ~queue(); //析构函数   
    void qput(int i);  
    int qget():  
};  queue::queue(int id){
    front=rear=0;
    myid=id;
    cout<<"Queue"<<myid<<" is initialized.\n";
}

传递参数给构造函数,需要声明对象时给对象一个参数
第一种方法:

queue q1=queue(5);

第二种方法:(常用)

queue q1(5); 

通用形式:

class-type var(arg-list);  //arg-list是传递给构造函数的参数列表,以逗号分隔.

 

完整代码:

#include <iostream>
using namespace std;

//创建类queue
class queue{
	int q[20];
	int front,rear; 
	int myid;
public:
	queue(int id); //参数化构造函数
	~queue(); //析构函数
	void qput(int i);
	int qget();
};

queue::queue(int id){
	front=rear=0;
	myid=id;
	cout<<"Queue"<<myid<<" is initialized.\n";
}

queue::~queue(){
	cout<<"Queue"<<myid<<" is destroyed.\n";
}


//在队尾插入一个整数
void queue::qput(int i){  
   if(rear==20){
    cout<<"Queue is full.\n";
    return;
   }
   rear++;
   q[rear]=i; 
}

//在队首取出一个整数
int queue::qget(){
 if(front==rear){
  cout<<"Queue underflow.\n";
  return 0;
 }
 front++;
 return q[front];
}

int main(){
 queue q1(1),q2(2);  //创建2个queue 对象(object),并传递参数

 q1.qput(15);
 q2.qput(18);

 q1.qput(25);
 q2.qput(28);

 cout<<"Queue q1: ";
 cout<<q1.qget()<<" ";
 cout<<q1.qget()<<"\n";

 cout<<"Queue q2: ";
 cout<<q2.qget()<<" ";
 cout<<q2.qget()<<"\n";
 

 return 0;
}

输出结果:

Queue1 is initialized.

Queue2 is initialized.

Queue q1: 15 25

Queue q2: 18 28

Queue2 is destroyed.

Queue1 is destroyed.

 

 

原文链接: https://www.cnblogs.com/fdyang/archive/2012/05/24/2858752.html

欢迎关注

微信关注下方公众号,第一时间获取干货硬货;公众号内回复【pdf】免费获取数百本计算机经典书籍

    Return to the Basic - 构造函数(Constructor),析构函数(Destuctor)

原创文章受到原创版权保护。转载请注明出处:https://www.ccppcoding.com/archives/51061

非原创文章文中已经注明原地址,如有侵权,联系删除

关注公众号【高性能架构探索】,第一时间获取最新文章

转载文章受原作者版权保护。转载请注明原作者出处!

(0)
上一篇 2023年2月9日 上午2:35
下一篇 2023年2月9日 上午2:36

相关推荐