创建C++的类主要有两个文件:.cpp和.h结尾的两个文件。
.h结尾的是头文件,对外公开的接口。
.cpp是具体的实现。也就是说变量和函数的声明或者类的声明都写在.h头文件中。
•用class定义类
成员默认为私有
•类中成员的作用域
private
protected
public
以下是简单的创建一个模拟的
Time
时间类
头文件如下:
//
// Time.h
// ClassAndObject
//
// Created by 06 on 15/1/19.
// Copyright (c) 2015年 黄永锐. All rights reserved.
//
#ifndef __ClassAndObject__Time__
#define __ClassAndObject__Time__
#include <iostream>
using namespace std;
//类
class Time {
//三个私有的成员变量 时分秒
int hour;
int min;
int sec;
public:
//构造方法的声明
//.h文件可以给参数默认值,但是要注意 初始化列表和实现部分在cpp文件中
Time (int h = 0,int m = 0,int s = 0);
//运行
void run();
private://私有
void dida();
void show();
};
#endif /* defined(__ClassAndObject__Time__) */
具体实现的.cpp文件如下:
//
// Time.cpp
// ClassAndObject
//
// Created by 06 on 15/1/19.
// Copyright (c) 2015年 黄永锐. All rights reserved.
//
#include "Time.h"
//注意在函数的实现部分参数不能出现默认值
//哪个类下的哪个方法 //初始化列表
Time::Time (int h,int m,int s):hour(h),min(m),sec(s){
cout << " " << endl;
}
//这是一个全局函数 不是Time类下的一个方法 所以得不到成员变量
/*
void show(){
cout << hour << "时" << min << "分" << sec << "秒" << endl;
}
*/
//哪个类下的哪个函数
void Time::show(){
cout << hour << "时" << min << "分" << sec << "秒" << endl;
}
void Time::dida(){
sec++;
if (60 == sec) {
sec = 0;
min++;
}
if (60 == min) {
min = 0;
hour++;
}
if (24 == hour) {
hour = 0;
}
}
//运行
void Time::run(){
while (1) {
show();
dida();
//代表一个时间
time_t cur = time(0);//0是获取当前系统的时间
//注意理解
while (cur == time(0)) {
//死循环1秒钟
}
}
}
以上就是一个简单的类,然后需要在别的文件去创建该类对象的时候先导入头文件。
#include <iostream>
#include "Time.h" //双引号导入的是自己写的类
using namespace std;
//主函数
int main(){
//需要创建一个Time对象
Time t(21,18,32);
//t.show();//私有方法访问不到
//t.dida();
t.run();
return 0;
}
运行结果如下:
21时18分32秒
21时18分33秒
21时18分34秒
21时18分35秒
21时18分36秒
Program ended with exit code: 9