【C/C++】【类和对象】初识类

类是我们自己定义的数据类型(新类型),设计类时要考虑的角度

1)站在设计和实现者的角度来考虑

2)站在使用者的角度来考虑

3)父类、子类;

类基础

  1. 一个类就是一个用户自己定义的数据类型,我们可以把类想象成一个命名空间,包着一堆东西(成员函数和成员变量)
  2. 一个类的构成:成员变量,成员函数(有很多特殊成员函数,后续慢慢讲)
  3. 我们访问类成员,如果是类的对象,我们就用对象名.成员名的来访问成员。如果是指向对象的指针,我们就用指针名->成员名来访问成员
  4. public成员提供类的接口,暴露给外界,共外界调用, private提供各种实现类功能的细节方法,但不暴露给使用者,外界无法使用private 成员
  5. struct 是成员默认public的class;struct A
  6. class成员默认是private 私有 class A
  7. struct A{......}等价于class A
class student 
{
public:
    int number;
    char name[100];
};

student someone; //定义类对象
someone.number = 10000; //访问类成员
student *psomeone = &someone;
psomeone->number = 1005;
cout<<someone.number<<endl;

成员函数

封装在类内部的函数

initTime,initMilliSecond都是成员函数

#ifndef __MYTIME__
#define __MYTIME__

class Time
{
private:
    int MilliSecond; //毫秒
private:
    void initMilliSecond(int mls);
public:
    int Hour; //小时
    int Minue; //分钟
    int Second; //秒钟
    void initTime(int tmphour, int tmpmin, int tmpsec);

};


#endif

#include "time.h"


//成员函数initTime()的实现
//其中::表示作用域运算符,表示inittime函数属于Time类,避免冲突
void Time::initTime(int tmphour, int tmpmin, int tmpsec)
{
    Hour = tmphour; // 成员函数中,可以直接使用成员变量名
                    // 哪个对象调用的该成员函数,这些成员变量就属于哪个对象,可以理解成类成员函数知道哪个对象调用自己
    Minue = tmpmin;
    Second = tmpsec;
    initMilliSecond(3);
}

void Time::initMilliSecond(int mls)
{
    MilliSecond = mls;
}



对象拷贝

对象本身是可以拷贝的; 默认情况下,这种类对象的拷贝是每个成员变量逐个拷贝; 如果在类Time中定义适当的赋值运算符,就能够控制对象的这种拷贝行为,运算符重载;

私有成员

私有成员无法在外部调用,成员函数可以访问任何成员变量,不管是否私有;

Time myTime6;
//myTime6.MilliSecond = 5;//私有成员不能再外界调用     
//成员函数可以访问成员变量,不管成员是不是私有
//myTime6.initMilliSecond(5); 私有函数不能在外界调用
//public和private可以有多个

原文链接: https://www.cnblogs.com/NaughtyCoder/p/13323985.html

欢迎关注

微信关注下方公众号,第一时间获取干货硬货;公众号内回复【pdf】免费获取数百本计算机经典书籍;

也有高质量的技术群,里面有嵌入式、搜广推等BAT大佬

    【C/C++】【类和对象】初识类

原创文章受到原创版权保护。转载请注明出处:https://www.ccppcoding.com/archives/366901

非原创文章文中已经注明原地址,如有侵权,联系删除

关注公众号【高性能架构探索】,第一时间获取最新文章

转载文章受原作者版权保护。转载请注明原作者出处!

(0)
上一篇 2023年3月2日 下午5:01
下一篇 2023年3月2日 下午5:05

相关推荐