类的封装c++标准代码实例

1,

 因为小时分钟秒是在private里面的,无法直接访问。

表示了函数封装的标准步骤。

#include<iostream>

using namespace std;

class Clock {

private:

    int hour, minute, second;

public:

    Clock(); //声明无参构造函数
    //两者最好都有。
    Clock(int newH, int newM, int newS); //声明构造函数



    //内联函数,设置属性的值

    void setHour(int hour) {//函数名称set加属性名

        this->hour = hour;//外面传入的赋值给属性hour

    }

    void setMinute(int minute) {

        this->minute = minute;

    }

    void setSecond(int second) {

        this->second = second;

    }

    //获得属性的值

    int getHour() {

        return hour;

    }

    int getMinute() {

        return minute;

    }

    int getSecond() {

        return second;

    }



    void display() {

        cout << hour << ":" << minute << ":" << second << endl;

    }

};//都写在类声明的里面。



//定义无参构造函数,给hour,minute,second赋初值为1

Clock::Clock() : hour(1), minute(1), second(1) {



}

//定义有参构造函数,给hour,minute,second赋初值为传入的参数值

Clock::Clock(int newH, int newM, int newS) : hour(newH), minute(newM), second(newS) {



}



/*定义无参构造函数的第二种等价写法:(推荐)

Clock::Clock() {

   this->hour = 1;//当前的属性赋值为1.

   this->minute = 1;

   this->second = 1;

}

*/



/*定义有参构造函数的第二种等价写法:(推荐)

Clock::Clock(int hour, int minute, int second) {

   this->hour = hour;  //将传入的hour的值赋给hour属性(用this->hour表示)

   this->minute = minute;

   this->second = second;

}

*/



int main() {

    Clock myClock1; //定义对象,此时会自动调用无参构造函数
    //myClock1.hour = 5;

    cout << "利用无参构造函数创建的时间对象为:";

    myClock1.display(); 



    Clock myClock2(8, 3, 30); //此处将自动调用有参构造函数

    cout << "利用有参构造函数创建的时间对象为:";

    myClock2.display();



    myClock2.setHour(21);

    cout << "修改过的对象的时间为:";

    myClock2.display();



    return 0;

}

//封装的改变
//{
//    myClock.hour = 5; (NULL)
//    hour = myClock.hour; (NULL)
//    操作变了
//    hour = myClock.getHour();(ok)
//    myClock.setHour(5);(ok)
// }
//    好处
// 
//{如果我们要隐藏studentid域 实现数据域的保护
//  不希望被读取,(防止越权访问)
// 1,用private声明这个数据
// 2,不要定义getstudentid函数 (如果希望数据不被读)
// ///
// 如果希望被读修改定义setstudentid函数
// 
// 2.限制私有的特性改变产生的连锁反应。(健壮性)
// 因为规定了唯一访问studentid的方式-》getstudentid函数访问,属性是私有的。
// 一个信息隐藏是好,未来被修改的可能就越大,属性被藏起来了,就是黑瞎子。
// 3,保持数据完整性。
// 私有的函数可以被类里面的函数调用,当main都里不能直接修改
// 这代表假如我要对用户输入进行读入不会直接读入,(而是通过一次过滤类里面函数的过滤,再在类里面去调用私有函数)。 
//}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值