类和对象@C++
对象是类的实例
定义类的对象,才能通过对象使用类中定义的功能
设计一个类意味着什么
设计类就是设计类型
此类型的合法值
内涵的操作符和函数
该类型的对象如何被创建和销毁
对对象进行初始化和赋值
对象作为函数的参数如何传递
谁使用该类的对象
类定义的语法
class name { public://共有成员,外部接口,任何外部函数都可以访问 private://私有成员,对外屏蔽,只允许本类中函数访问,外部函数无法访问(一般情况) 但外部函数可以通过访问public进而访问private 如果 类名称后直接声明(即"{"后) 私有成员可以不使用关键字private protected://保护性成员 与private类似 与private的差别在继承和派生时体现 };//类中成员可以互相访问,直接使用成员名即可
//类外访问成员 使用对象名.成员名的方式访问public
可以给数据成员设定初始值以初始化
class Clock { public: void setTime(int newH, int newM, int newS); void showTime(); private: int hour = 0, minute = 0, second = 0; };
类没有直接功能 比如说,学生是一个类,但这个抽象概念无法实现具体功能,要实现具体功能 需要定义对象 学生A正在看书
如果要使用类内的功能,必须通过对象
定义对象 如
Clock myClock;
类的成员函数
在类中声明函数原型
可以在类外给出函数体,但必须在函数名前加上类名以限定 也可以 直接在类内给出函数体,形成内联函数成员
内联成员函数 把函数体放在类的声明中 放在类外,但使用inline关键字
允许重载函数和带默认参数的函数
以下是具体例子
#include<iostream> using namespace std; 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; }