C++类和对象

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

你可能感兴趣的:(类和对象)