C++类就是为程序员提供一种建立一个新类型的工具,使这些新类型的使用能够像内部类型一样方便。
一个类就是一个用户定义的类型,如何声明一个类,形式如下:
class class_name {
access_specifier_1:
member1;
access_specifier_2:
member2;
...
} object_names;
示例如下:
class Object {
public:
Object();
~Object(); //must be public
Object(int num);
int getNumber();
void setNumber(int num);
private:
int m_num;
};
如何定义一个已声明的类:
Object::Object() {
m_num = 0;
}
Object::~Object() {
}
Object::Object(int num) {
m_num = num;
}
int Object::getNumber() {
return m_num;
}
void Object::setNumber(int num) {
m_num = num;
}
如何实例化和使用一个类:
int main () {
Object obj1;
Object obj2(110);
Object obj3 = Object(119);
Object *pObj4 = new Object();
Object *pObj5 = new Object(119);
Object objs[10];
printf("obj1.getNumber() = %d\n", obj1.getNumber());
printf("obj2.getNumber() = %d\n", obj2.getNumber());
printf("obj3.getNumber() = %d\n", obj3.getNumber());
printf("pObj4->getNumber() = %d\n", pObj4->getNumber());
printf("pObj5->getNumber() = %d\n", pObj5->getNumber());
for (int i = 0; i < 10; i++) {
printf("objs[%d].getNumber() = %d\n",i, objs[i].getNumber());
}
delete pObj4;
delete pObj5;
return 0;
}
struct 和union的类声明
类可以定义不仅可以用关键字class,也可以用关键字struct和union。
class和struct的概念是相似的,可用struct和class声明C++的类(即struct可以有数据成员和函数成员)。两者之间唯一的区别是使用关键字struct声明的类成员默认情况下,是public访问权限,而使用关键字class声明的类成员默认是private访问权限。对于所有其他的目的,这两个关键字是等价的。
union的概念是与struct和class声明类不同的,因为union一次只能存储一个数据成员,但union也可能拥有函数成员,union类的默认访问权限是public。