C++类和对象

本文深入解析了C++中类的声明及其成员的访问权限,包括私有、公有和保护成员的区别与用法,并通过实例展示了成员函数的实现方式。文章详细阐述了类中数据成员与成员函数的定义,以及如何在类内外进行访问,旨在帮助开发者更好地理解C++面向对象编程的基本概念。
摘要由CSDN通过智能技术生成

类 是一组性质相同对象的程序描述。在C++中声明类的一般形式为:

class 类名

{

prinvate;

私有数据和函数

public;

公有数据和函数

protected;

保护数据和函数。

}

类的声明是以关键字class开始的。后面跟着类名。注意其后面的分号不能缺少。

例:

类的声明:

class Time

{

private:

    int hour;

    int minute;

    int second;

public:

    void setHour(int _h);

    int getHour();

    void setMinute(int _m);

    int getMinute();

    void setSecond(int _s);

    int getSecond();


//类的方法。

#include "Time.h"


voidTime:: setHour(int _h)// ::作用域。

{

    hour=_h;

    this->hour=_h;//这两句话是等效。

}

intTime:: getHour()

{

    return hour;

}



voidTime:: setMinute(int _m)

{

    minute=_m;

}

intTime:: getMinute()

{

    return minute;

}


voidTime:: setSecond(int _s)

{

    second=_s;

}


intTime:: getSecond()

{

    return second;

}



#include <iostream>

#include "Time.h"

using namespace std;

//主函数。

int main(int argc,const char * argv[])

{


    

    //std是命名空间, cout是对象。没有格式控制字符。

    //endl相当于\n

    std::cout <<"Hello, World! \n"<<10<<endl;

    Time time;//对象是放在栈上的。

    time.setHour(10);

    time.setMinute(20);

    time.setSecond(30);

    cout<<time.getHour()<<":"<<time.getMinute()<<":"<<time.getSecond()<<endl;

    

<访问权限>

private:私有成员,只能在类中的被访问,在类外不能访问私有成员。(默认是私有的)

public:公有成员,在类中和类外都能被访问,通常将成员函数定义为公有的,用于提供对类外访问类中私有成员的接口

protected:保护成员,具有公有和私有的共同特性,即保护成员只能被类内和派生类中成员访问,在类外不允许被访问。

<成员函数的实现>

成员函数有两种实现方式;

 1在类中声明并实现。

一般在类中定义的成员函数都是规模比较小的函数,一般语句会在1~5句之间,

  叫内联函数。 如果类中的函数体超过5句话,就的把函数体放在类外。

2在类中声明在类外实现。

在一些大项目中,一般成员函数的规模都非常大,直接把它们定义和实现全放在类定义中使用起来很不方便,且对程序的可读性较差。所以为了有效地提高类的使用和可读性,c++允许在其它的地方实现成员函数。

类声明的定义通常写在头文件中(.h文件)

类的实现文件,通常写在.cpp中。


class timeClass
{
private:
    int m_Second;
    int m_Minute;
    int m_Hour;
    
    
public:
    void setTime(int _second,int _minute, int _Hour)
//在类内实现的。
    {
        m_Second = _second;
        m_Minute = _minute;
        m_Hour = _Hour;
    }
    void PrintTime()
    {
        cout<<m_Hour<<":"<<m_Minute<<":"<<m_Second<<endl;
    }
    
};










评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值