类
类是我们自己定义的数据类型(新类型),设计类时要考虑的角度
1)站在设计和实现者的角度来考虑
2)站在使用者的角度来考虑
3)父类、子类;
类基础
- 一个类就是一个用户自己定义的数据类型,我们可以把类想象成一个命名空间,包着一堆东西(成员函数和成员变量)
- 一个类的构成:成员变量,成员函数(有很多特殊成员函数,后续慢慢讲)
- 我们访问类成员,如果是类的对象,我们就用对象名.成员名的来访问成员。如果是指向对象的指针,我们就用指针名->成员名来访问成员
- public成员提供类的接口,暴露给外界,共外界调用, private提供各种实现类功能的细节方法,但不暴露给使用者,外界无法使用private 成员
- struct 是成员默认public的class;struct A
- class成员默认是private 私有 class A
- 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大佬
原创文章受到原创版权保护。转载请注明出处:https://www.ccppcoding.com/archives/366901
非原创文章文中已经注明原地址,如有侵权,联系删除
关注公众号【高性能架构探索】,第一时间获取最新文章
转载文章受原作者版权保护。转载请注明原作者出处!