通过
构造函数,使对象在创建时就可以对自身进行初始化。
- 构造函数名和类名相同。
- 构造函数是没有返回类型的。(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://yalantis.com/blog/building-a-customizable-constructor-for-designers-of-android-wear-watch-face-apps) This is simple watchface constructor demo. It offers customization of the following ...
本文实例讲述了js核心基础之构造函数constructor用法。分享给大家供大家参考,具体如下: 在js中,可以利用构造函数来创建特定类型的对象,其中,有一些原生的构造函数,Object、Array、等等,所以,当type of ...
对象的constructor属性用于返回创建该对象的函数,也就是我们常说的构造函数,除了创建对象,构造函数(constructor) 还做了另一件有用的事情—自动为创建的新对象设置了原型对象(prototype object)
使用no-constructor-bind消除构造函数中的绑定函数。 使用no-constructor-state可以消除no-constructor-state初始状态设置。 这样做,很可能您将能够使用ESLint的内置no-useless-constructor来删除应用程序中的许多...
prototypal-oo-js-object-oriented-constructor-functions-lab-online-web-ft-110419-源码.rar
真正的原因是:一个对象的constructor是它的构造函数的prototype.constructor,而每一个函数都有一个prototype,默认情况下,这个prototype有一个constructor属性,指向的是它自己。 我觉得Javascript的设计本意是让...
析构函数(Destructors),是对象的成员函数,没有返回值也没有参数,且一个类只有一个析构函数,当对象被销毁的时候调用,被销毁通常有这么几个情况。 函数执行结束 程序执行结束 程序块包含的局部变量 delete...
主要介绍了js构造函数constructor和原型prototype原理与用法,结合实例形式分析js构造函数constructor和原型prototype基本原理、功能、使用方法及操作注意事项,需要的朋友可以参考下
构造方法 马克-to-win Java视频 构造函数 constructor
检查值是否为错误构造函数 安装 $ npm install is-error-constructor 用法 import isErrorConstructor from 'is-error-constructor' ; isErrorConstructor ( Error ) ; //=> true isErrorConstructor ( RangeError )...
飞行计划构造函数。 用 BlueJ 开发(Java 编程) ================================================== ================================== 使用此应用程序的步骤 FondDeCarte :在做任何事情之前,你必须加载一张...
discord-rpc构造函数 该软件包旨在与discord-rpc一起使用 安装 npm i -S discord-rpc discord-rpc-constructor 用法 const { Client } = require ( 'discord-rpc' ) ; const Activity = require ( 'discord-rpc-...
Get the name of the next property of Result(3) that doesn t have the DontEnum attribute.
这个试题是在面试过程中碰到过的一个考察C++ copy constructor这个知识点。
React草图构造函数 React素描渲染器如果您认为它有用,请★此回购★★★★产品特点支持素描安装npm install --save react-sketch-constructor依存关系用法用法文档支持提交屏幕截图截图贡献查看执照 :copyright:2020...
dart-cli-president-constructor-int 描述 通过构造函数中的参数初始化字段。 科技栈 镖 Docker堆栈 谷歌/Dart 跑步 sudo ./install.sh -u 停止(可选) sudo ./install.sh -d 求助 sudo ./install.sh -h 信用
discord-bot-constructor