zoukankan      html  css  js  c++  java
  • 类构造函数(4)

    /*类构造函数(4)*/

    #include "stdafx.h"
    #include <string.h>
    #include <iostream.h>
    class Date
    {
    public:
        //
    表达式表构造
        Date( int nYear = 1980 , int nMonth = 1, int nDay = 1 )
            :m_nYear(nYear),m_nMonth(nMonth),m_Day(nDay)
        {
           
        }
        int m_nYear;
        int m_nMonth;
        int m_Day;
    };

    class student
    {
    private:
        char m_szName[32];
        int  m_nAge;
        const int  m_nheight;   //
    初始化表初始化
        int& m_refAge;          //
    初始化表初始化
        Date m_BrothDay;        //
    成员对象的构造的选择,自由选择
    public:
        //
    声明时不能带表
        student( int nAge,int nheight,char* pStrName,
            int nYear,int nMonth, int nDay);
        student( char* pStrName );
        student( const student* pObj)
            :m_nheight(pObj->m_nheight),m_refAge(m_nAge)
        {
            cout << "student( const student* pObj)" << endl;
        }
        //
    返回一个引用
        int& GetHeight()
        {
            return (int&)m_nheight;
        }
    };

    //
    实现时可以写初始化表
    //
    初始化表成员赋值顺序无所谓
    //
    数据成员初始化顺序 按照类中声明顺序依次进行
    student::student( int nAge,int nheight,char* pStrName,
                      int nYear,int nMonth, int nDay)
                      :m_nheight(nheight),m_nAge(nAge),m_refAge(m_nAge),m_BrothDay(1979,12)
    {
        strcpy(m_szName,pStrName);
        //m_nAge  = nAge;
        //m_nheight = nheight;
        cout << "student(int,int,char*)" << endl;
    }

    student::student( char* pStrName )
    :m_nAge(25),m_nheight(180),m_refAge(m_nAge),m_BrothDay(1988,12,23)
    {
        strcpy(m_szName,pStrName);
        cout << "student(char*)" << endl;
    }

    int main(int argc, char* argv[])
    {
       
        static student StuStatic("");
       
        //student stu(20,175,"
    张三",1979,12,26);
       
        student stu1("
    张三");
       
        student stu2("
    李四");
       
        cout << &(stu1.GetHeight()) << &(stu2.GetHeight()) << endl;
       
        //
    指针赋值 ,没有构造函数调用
        student *pStu = &StuStatic;
       
        //
    带参构造函数调用  student(const student* pObj)
        //
    类指针作为参数构造
        student Stu3 = pStu;
       
        //
    拷贝构造函数调用
        student Stu4 = *pStu;
       
        return 0;
    }

  • 相关阅读:
    我在D2讲演的视频,已经可以下载了~
    走出海量数据及访问量压力困境
    博客作者应该学习的15个国外博客
    如何将jsp动态网页转换成静态页面
    新一代网络模式Web 2.0火爆发展
    数据库设计中的14个关键技巧
    如何进行RSS推广
    运用RUP 4+1视图方法进行软件架构设计
    02java关键词变量类型
    03java运算符函数
  • 原文地址:https://www.cnblogs.com/w413133157/p/1653611.html
Copyright © 2011-2022 走看看