对象
任何一个对象都应当具有属性和行为这两个要素。对象应能根据外界给的消息进行相应的操作。
一个对象一般是由一组属性和一组行为构成的。
例如:一台DVD机是一个对象,它的属性是生产厂家、牌子、颜色等,它的行为是它的功能;
c++中,每个对象都是由数据和函数组成。
数据——体现属性。
函数——对数据进行操作,以便实现某些功能。
类和对象的关系
c++中,对象的类型是类。
类是对象的抽象,而对象是类的具体实例
class Stdent
{
public:
int num;
char sex;
void display();
}stud1,stud2; //定义两个Student类的对象——1
Student stud1,stud2; //定义两个Student类的对象——2
1、2是定义对象的两种方法,哪一种表示方法都行。
由于c++必须兼容c,所以也可以用struct来代替class声明一个类,两者基本一样,但是二者有一定的区别:
当使用struct时,如果对其成员不作声明private或者public,系统默认为公有,而使用class时,系统则默认为私有。
值得一提的是,类中的成员函数的代码段是不占用对象的存储空间的。
对象成员的引用
一、通过对象名和成员运算符访问对象中的成员
stud1.display(); //调用对象stud1的公用成员函数
二、通过指向对象的指针访问对象中的成员
class Time
{
public:
int hour;
int minute;
};
Time t,*p;
p = &t;
cout << p->hour;
三、通过对象的引用来访问对象中的成员
Time t1;
Time &t2 = t1; //定义Time类引用t2,并初始化为t1
cout << t2.hour; //输出对象t1中的成员hour
类声明和成员函数定义的分离
实际上,一个c++程序是由3个部分组成的:
(1)类声明头文件(后缀为h或者无后缀)
(2)类实现文件(后缀为.cpp)包括类成员函数的定义
(3)类的使用文件(后缀为.cpp),即主文件
(1)类声明头文件
//student.h
#include <iostream>
using namespace std;
class Student
{
public:
void display();
private:
int num;
string name;
char sex;
};
(2)包含类成员函数的定义的文件(即类实现文件)
//student.cpp
#include <iostream>
#include "student.h"
void Student::display()
{
cout << "num:" << num <<endl;
cout << "name:" << name <<endl;
cout << "sex:" << sex <<endl;
}
(3)主文件。为了组成一个完整的源程序,还应当有包括主函数的源文件
//main.cpp
#include <iostream>
#include "student.h"
using namespace std;
int main()
{
Student stud;
stud.display();
return 0;
}