类和对象1
- 一、成员函数
- 二、对象复制
- 三、私有成员
一、成员函数
工程化编写
我们需要遵从常规的书写规范,把类定义和类实现分别写在头文件和原文件中。
在 Time.h 文件中,内容如下:
#ifndef __MYTIME__
#define __MYTIME__class Time{
public:int Hour;int Minute;int Second;// declare initTime functionvoid initTime(int tmphour,int tmpmin,int tmpsec);
};#endif // MAIN_H
在 Time.cpp文件中,内容如下:
#include <iostream>
#include "Time.h"
using namespace std;
// 两个冒号叫作用域运算符,表示 initTime 函数 属于 Time 类。
void Time :: initTime(int tmphour, int tmpmin, int tmpsec){Hour = tmphour;Minute = tmpmin;Second = tmpsec;
}int main(){Time myTime;myTime.initTime(11,14,5);cout<<myTime.Hour<<endl;cout<<myTime.Minute<<endl;cout<<myTime.Second<<endl;return 0;
}
二、对象复制
Time myTime2 = myTime;
Time myTime3{myTime};
Time myTime4 = {myTime};
myTime4.Hour = 8;Time myTime6;
myTime6 = MyTime4;
上面都是对象的复制,复制后,每个对象都有不同的地址,且成员变量的值都相等。
三、私有成员
在原先的代码增加了一些成员
//Time.h
#ifndef __MYTIME__
#define __MYTIME__class Time{
public:int Hour;int Minute;int Second;// declare initTime functionvoid initTime(int tmphour,int tmpmin,int tmpsec);private:int Millisecond;
private:void initMillTime(int mls);
};#endif // MAIN_H
//Time.cpp
#include <iostream>
#include "Time.h"
using namespace std;
// 两个冒号叫作用域运算符,表示 initTime 函数 属于 Time 类。
void Time :: initTime(int tmphour, int tmpmin, int tmpsec){Hour = tmphour;Minute = tmpmin;Second = tmpsec;
}void Time::initMillTime(int mls){Millisecond = mls;
}int main(){Time myTime;myTime.initTime(11,14,5);//myTime.initMillTime();cout<<myTime.Hour<<endl;cout<<myTime.Minute<<endl;cout<<myTime.Second<<endl;return 0;
}
类的私有成员变量和成员函数,都只能在类的成员函数内调用,外界是无法调用的。
而访问私有变量的方式,后面的友元函数或者友元类来访问会讲到。