类是对象的抽象,而对象是类的具体实例。
- 声明类的类型:
一般形式为
class 类名
{private:
私有的数据和成员函数;
public:
公用的数据和成员函数;
};
注:如果在类的定义中既不指定private,也不指定public,则系统就默认为是私有的。除了private和public之外,还有一种成员访问限定符protect(受保护的),用protect声明的成员称为受保护的成员,它不能被类外访问,但可以被派生类的成员函数访问。
- 定义对象的方法:
(1)先声明类类型,再定义对象(两种形式)
class 类名 对象名;
如:class student n1,n2;
类名 对象名;
如:student n1,n2;
第一种是从C语言继承下来的,第二种是C++的特色,显然更加方便。
(2)在声明类的同时定义对象
如:
class student{
private:
int num;
char name[20];
public:
void display(){
cout<<num<<endl<<name<<endl;
}
}n1,n2;
在定义student类的同时,定义了两个student类的对象。
(3)不出现类名直接定义对象
如:
class {
private:
int num;
char name[20];
public:
void display(){
cout<<num<<endl<<name<<endl;
}
}n1,n2;
直接定义对象在C++中是合法的允许的,但是很少用,也不提倡用。在实际的程序开发中,一般都采用第一种方法。
3.类和结构体类型的异同:
C++增加了class类型后,仍保留了结构体类型,而且把它的功能也扩展了,允许用struct来声明一个类。
如:
struct student{ //用关键字struct来声明一个类类型
private:
int num;
char name[20];
public:
void display(){
cout<<num<<endl<<name<<endl;
}
};
但是用struct声明的类和class声明的类有所区别。用struct声明的类,如果对其成员不作private或public的声明,系统将其默认定为public(公用的)。而用class声明的类,如果对其成员不作private或public的声明,系统将其默认定为private(私有的)。