C++--类的定义

本文详细介绍了C++中类的定义,包括成员属性和函数,以及访问权限(public、private、protected)的概念。同时讨论了成员函数的不同实现方式,如内联函数和函数声明与定义的分离。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在这里插入图片描述

一.类的定义


class 类名 
{
private:
	成员属性或成员函数
protected:
	成员属性或成员函数
public:
	成员属性或成员函数
};

补充:

(1)class是声明类的关键字,class后跟类名。类名一般首字母大写。
(2)类包括成员属性和成员函数。成员属性代表对象的属性;成员函数实现对象的行为。
(3)privateprotectedpublic关键字称为访问权限符,它规定了类中成员的访问属性。这3个关键字可以按任意顺序出现。默认时为私有的(private)

【例3-1】 声明一个学生类。
分析:每个学生都有学号、姓名和性别;对于学生的基本操作有输入信息、输出信息等。因此,对应的学生类定义如下:

class Student //声明类
{
private: //访问权限:私有成员
    string m_id;   //属性,数据成员,表示学号
    string m_name; //属性,数据成员,表示姓名
    string m_sex;  //属性,数据成员,表示性别
public:  //访问权限:公有成员
    Student();     //行为,成员函数的原型声明,表示构造函数
    void input();  //行为,成员函数的原型声明,表示输入学生信息
    void print();  //行为,成员函数的原型声明,表示输出学生信息
}; //类声明结束

二. 成员访问权限

可以定义3种不同的访问权限符,分别为public(公有类型)、private(私有类型)和protected(保护类型)

public(公有类型)

public 声明成员为公有成员。完全公开。都可以访问

class Human
{
public: //声明类的公有成员
    int high; //身高
    int weight;//体重
    void GetHigh()
    {
        cout<<"身高:"<<high<<endl;
    }
    void GetWeight()
    {
        cout<<"体重:"<<weight<<endl;
    }
};

int main()
{
    Human zhangsan;       //定义类的对象
    zhangsan.high=175;    //通过对象访问类的公有数据成员
    zhangsan.weight=70;   //通过对象访问类的公有数据成员
    zhangsan.GetHigh();   //通过对象访问类的公有成员函数
    zhangsan.GetWeight(); //通过对象访问类的公有成员函数

    return 0;
}

private(私有类型)

private声明成员为私有成员。该级别的成员只能被它所在类中的成员函数和该类的友元函数访问。

class Human
{
private: //声明类的私有数据成员
    int high; //身高
    int weight;//体重
public: //声明类的公有成员函数
    void SetHigh(int h)
    {
        high = h; //类的成员函数访问类的私有数据成员
    }
    void GetHigh()
    {
        cout << "身高:" << high << endl; //类的成员函数访问类的私有数据成员
    }
    void SetWeight(int w)
    {
        weight = w; //类的成员函数访问类的私有数据成员
    }
    void GetWeight()
    {
        cout << "体重:" << weight << endl; //类的成员函数访问类的私有数据成员
    }
};

int main()
{
    Human lisi; //定义类的对象
    //lisi.high=185; //错误,不能通过对象访问类的私有数据成员
    //lisi.weight=90; //错误,不能通过对象访问类的私有数据成员
    lisi.SetHigh(180); //通过对象访问类的公有成员函数给high赋值
    lisi.SetWeight(80); //通过对象访问类的公有成员函数给Weight赋值
    lisi.GetHigh(); //通过对象访问类的公有成员函数
    lisi.GetWeight(); //通过对象访问类的公有成员函数

    return 0;
}

从上例可知,private成员只能在类的成员函数中使用。在类外,不能通过对象访问,如lisi.high=185;和lisi.weight=90;都是错误的。

protected(保护类型)

protected声明成员为保护成员。具有这个访问控制级别的成员,外界是无法直接访问的。它只能被它所在类及从该类派生的子类的成员函数及友元函数访问。它和private的区别只在类继承时体现。

在这里插入图片描述

三.成员函数实现方式

类的成员函数也是函数的一种。它与一般函数的区别是:它属于一个特定的类,是类的一个成员。
在使用类的成员函数时,要注意它的访问权限(它能否被访问),以及它的作用域(类函数能在什么范围内被访问)。

类的成员函数的定义方式有两种。

  • 第一种是在类内直接进行定义。这种方式一般用在代码比较少的成员函数中,并自动成内联函数。

  • 第二种是在类中进行函数说明,在类外进行函数定义。这种情况通常用在代码较多的类的成员函数上。在定义函数时,必须用作用域符“::”表明函数所属的类。

形式如下:

返回类型 类名::函数名(参数列表)
{
    //函数体
}

例如定义时钟类:

#include <iostream>
using namespace std;
class Clock
{
private:
    int hour; //小时
    int minute;//分钟
    int second;//秒
public:
    void setTime(int h,int m,int s); //类中声明,类外定义
    
    void showTime() //类中定义函数
    {
        cout<<hour<< "时"<<minute<<"分"<<second<<"秒"<<endl;
    }
};

void Clock::setTime(int h,int m,int s) //定义成员函数
{
    hour=h;
    minute=m;
    second=s;
}


int main()
{
    Clock cc;
    cc.setTime(8,10,20);
    cc.showTime();
    return 0;
}

本片完!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

码农小小苏

感谢大佬支持!!!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值