C++学习之路---构造函数--1

来源:互联网 发布:集思宝a5软件 编辑:程序博客网 时间:2024/06/06 00:41

     感觉构造函数像定义的初始化,构造函数是每个函数都有的,如果自己没有去定义的话,系统会给你一个构造函数,析构函数也是这样的,但是他不会给你初始化的值的

一  : 构造函数有这几个特点:

    1. 函数名字和类名相同

    2.没有返回值

    3.要在public权限下

    4.自动调用---(在定义变量的时)

    5.不能被继承

    6.可以重载

    7.默认构造函数只有一个

二: 构造函数的几种不同的赋值方式

 1.直接在函数里面附初值

#include <iostream>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;}

2.带参数的构造函数

#include <iostream>using namespace std; class Time{    public :    Time(int h, int m, int s)///构造函数--初始化的过程    {        hour = h;        minute = m;        sec = s;    }    void show_time();    private:    int hour;    int minute;    int sec;};void Time::show_time(){    cout<<hour<<":"<< minute<<":"<<sec<<endl;}int main(){    Time t1(1,2,3);    t1.show_time();    Time t2(2,3,4);    t2.show_time();    return 0;}


3.用参数初始化表重载

#include <iostream>using namespace std; class Time{    public :    Time(int h, int m, int s): hour(h),minute(m),sec(s)    {    }    void show_time();    private:    int hour;    int minute;    int sec;};void Time::show_time(){    cout<<hour<<":"<< minute<<":"<<sec<<endl;}int main(){    Time t1(1,2,3);    t1.show_time();    Time t2(2,3,4);    t2.show_time();    return 0;}


4.默认参数的构造函数

#include <iostream>using namespace std; class Time{    public :    Time(int h = 1, int m = 1, int s = 1): hour(h),minute(m),sec(s)    {    }    void show_time();    private:    int hour;    int minute;    int sec;};void Time::show_time(){    cout<<hour<<":"<< minute<<":"<<sec<<endl;}int main(){    Time t1(5);    t1.show_time();    Time t2(2,3,4);    t2.show_time();    return 0;}

5. 构造函数的重载

#include <iostream>using namespace std; class Time{    public :    Time()    {        hour = 1;        minute = 2;        sec = 3;    }    Time(int h , int m , int s): hour(h),minute(m),sec(s)    {    }    void show_time();    private:    int hour;    int minute;    int sec;};void Time::show_time(){    cout<<hour<<":"<< minute<<":"<<sec<<endl;}int main(){    Time t1;    t1.show_time();    Time t2(2,3,4);    t2.show_time();    return 0;}


6.默认构造函数只能有一个

#include <iostream>using namespace std;///默认构造函数只能拥有一个 class Time/// 在建立对象时不必给出实参的构造函数为默认构造函数{    public :    Time()    {        hour = 1;        minute = 2;        sec = 3;    }    Time(int h = 1, int m = 1, int s = 1): hour(h),minute(m),sec(s)    {    }    void show_time();    private:    int hour;    int minute;    int sec;};void Time::show_time(){    cout<<hour<<":"<< minute<<":"<<sec<<endl;}int main(){    Time t1;    t1.show_time();    Time t2(2,3,4);    t2.show_time();    return 0;}




 

0 0
原创粉丝点击