C++中构造函数的作用「建议收藏」

C++中构造函数的作用「建议收藏」构造函数用于解决类中的对象初始化的问题构造函数是一类特殊的函数,与其他的成员函数不同的是构造函数构造函数不需要用户来调用它,而是建立对象的时候自动的执行#include//#include”student.h”//#include//#includeusingnamespacestd;classTime{publi


Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

构造函数用于解决类中的对象初始化的问题
构造函数是一类特殊的函数,与其他的成员函数不同的是构造函数构造函数不需要用户来调用它,而是建立对象的时候自动的执行

#include <iostream>
//#include "student.h"
//#include <string>
//#include <cstring>
using namespace std;
class Time
{ public:
    Time()    //构造函数必须与类的名称相同
    {                              //利用构造函数对对象中的数据成员进行初始化
        hour=0;
        minute=0;
        sec=0;

    }
    void set_time();
    void show_time();
private:
    int hour;
    int minute;
    int sec;

};
void Time::set_time() {
    cin>>hour;
    cin>>minute;
    cin>>sec;

}

void Time::show_time() {
    cout<<hour<<":"<<minute<<":"<<sec<<endl;

}
int main() {
    Time t1;
    t1.set_time();
    t1.show_time();
    Time t2;
    t2.show_time();

    return 0;
}

构造函数不需要用户调用,也不能够被用户调用。

带参数的构造函数

#include <iostream>
//#include "student.h"
//#include <string>
//#include <cstring>
using namespace std;
class Box{
public:
    Box(int,int,int);
    int volume();
private:
    int height;
    int width;
    int length;


};
Box::Box(int h, int w, int len) {
    height=h;
    width=w;
    length=len;
}
int Box::volume() {
    return height*width*length;
}
int main() {
   Box box1(12,25,36);   //建立对象box1并且指定对象的长宽高
    cout<<"the voluime of box1 is"<<box1.volume()<<endl;
    Box box2(15,65,32);
    cout <<"the volume of box2 is"<<box2.volume()<<endl;
    return 0;
}

带参数的构造函数中的形参,其对应的实参在定义对象时给定。
使用带有参数的构造函数可以方便的实现对不同的对象进行初始化。

#include <iostream>
//#include "student.h"
//#include <string>
//#include <cstring>
using namespace std;
class Box{
public:
    Box();
    Box(int h,int w,int len):height(h),width(w),length(len){}    //参数初始化列表使用形式
    声明一个有参的构造函数,用参数的初始化表对参数成员进行初始化
    int volume();
private:
    int height;
    int width;
    int length;


};
Box::Box() {
    height=5;
    width=8;
    length=23;
}
int Box::volume() {
    return height*width*length;
}
int main() {
   Box box1;   //建立对象box1并且指定对象的长宽高
    cout<<"the voluime of box1 is"<<box1.volume()<<endl;
    Box box2(15,65,32);
    cout <<"the volume of box2 is"<<box2.volume()<<endl;
    return 0;
}
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/197728.html原文链接:https://javaforall.net

赞 (0)
全栈程序员-站长的头像全栈程序员-站长

相关推荐

  • yk87cn一键视频神器ios_codename cure

    yk87cn一键视频神器ios_codename cure变量命名神器-Codelf在某度上搜索codeif得到的首个搜索结果:http://codeif.xinke.org.cn/点击链接进去后,输入名称回车后网页并无任何反应,不知道是不是服务器端出现问题了。后来搜索了一下,得到一个外网地址:https://unbug.github.io/codelf实测这个地址网页可以使用。…

    2022年9月21日
  • 密码库LibTomCrypt学习记录——(2.12)分组密码算法的工作模式——OMAC认证模式

    密码库LibTomCrypt学习记录——(2.12)分组密码算法的工作模式——OMAC认证模式OMACOMAC是一种认证模式,LibTomCrypt中涉及的OMAC,而NIST中提到的是CMAC。它们之间的关系是这样的:为避免基本的MAC算法CBC-MAC存在的安全缺陷,Black和Rogaway对其进行了改进,提出了避免CBC-MAC安全缺陷的XCBC算法。Iwata和Kurosawa对XCBC进一步改进,提出了One-KeyCBC-MAC(OMAC),接着又精益求精地提出了OM…

    2022年7月14日
  • poj3617Best Cow Line

    poj3617Best Cow Line

    2021年12月7日
  • rcnn fast rcnn faster rcnn_档案整理年终总结

    rcnn fast rcnn faster rcnn_档案整理年终总结行人检测概述:    行人检测有两种方向,传统算法和基于深度学习算法。传统算法的典型代表有Haar特征+Adaboost算法,Hog特征+Svm算法,DPM算法。而基于深度学习的行人检测典型代表有RCNN系列,YOLO系列和SSD系列。其中RCNN系列算法是现在使用的最广泛的基于深度学习的行人检测算法。    在说行人检测之前不得不说一下目标检测。行人检测是目标检测下的一个…

    2022年10月4日
  • 【尚硅谷】JavaScript基础&实战丨JS入门到精通_01-06

    【尚硅谷】JavaScript基础&实战丨JS入门到精通_01-061.JavaScript–ECMAScript–DOM–BOM2.JS基础JS代码需要编写到<scripttype=”text/javascript”> console.log(“HelloWorld”);</script>

    2022年10月23日
  • voliate Synchronized Lock

    voliate Synchronized Lock参考文章:https://blog.csdn.net/huyiju/article/details/97126274一、voliate相关1:java内存模型1.1:计算机的内存模型在计算机的内存模型中cpu和内存之间的速度存在数量级所以引入了高速缓存,告诉缓存会导致到底以哪个处理器的缓存为主,同步到主内存,这个时候有有了缓存一致性协议,来保证缓存一致性。指令重排:例如一下五行代码,前四行的在计算机cpu的执行顺序不一定是12345,也可以是13245或者34125,但是第五步的顺序不会变,这种

    2022年5月29日

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号