/*
//面向对象和类:抽象(对同类共同属性和行为概括,形成类)
封装,将抽象出来的数据、代码封装在一起,形成类 。增强安全性,实现;类声明中的{}
类是同一类对象的抽象,对象是类的实例
继承,在已有的类基础上(即继承已有的),进行扩展形成新的类
多态 ,同一名称,不同的功能实现方式。为减少程序中标识符的个数
//抽象实例:钟表
(1)数据抽象:
int hour, int minute, int second;
(2)代码抽象
setTime(), showTime()
Class Clock{
public:
void setTime(int newH, int newM, int newS);
void showTime();
private:
int hour, minute,second;
};
//public函数是类的外部接口
//private是隐藏在类内部 ,只允许本类中的函数访问
//如果在定义类名称后声明私有函数,关键字private可以省略
/*
// 类定义的语法形式
class 类名称{
public:
公有成员(外部接口);
private:
私有成员;
protected:
保护型成员;
};
类中成员之间访问,直接使用成员名相互访问
从类外访问成员,使用“对象名.成员名”的方式访问public成员
Class Clock{
public:
void setTime(int newH, int newM, int newS);
void showTime();
private:
int hour=0, minute=0,second=0; //类内初始值
};
//对象定义:
类名 对象名;
Clock myClock;
#include<iostream>
using namespace std;
//定义一个类,名为Clock
class Clock{
public:
void setTime(int newH = 0, int newM = 0, int newS = 0);
//当调用这个函数实参没给够时,使用默认形参
void showTime();
private:
int hour, minute, second;
};
//成员函数的实现
void Clock::setTime(int newH, int newM, int newS){
hour = newH;
minute = newM;
second = newS;
}
void Clock::showTime(){
cout << hour << ":" << minute << ":" << second;
}
int main(){
Clock myClock;
myClock.setTime(8,30,30);
myClock.showTime();
return 0;
}
*/
//构造函数
//已定义构造函数,默认编译器不再生成默认构造函数,如果此时
//仍希望编译器隐含生成默认构造函数,可以使用“=default”
class Clock{
public:
Clock() = default; //指示编译器提供默认构造函数
Clock(int newH, intnewM, int newS); //构造函数
private:
int hour, minute, second;
};