C++
通过类及相关的封装、继承、多态和虚函数机制支持面向对象的程序设计和开发。
类是一类事物的抽象,它封装了描述这类事物的共同属性和行为的数据结构和方法。
C++
中类的声明(也又称)式如下:
class 类名
{
访问范围说明符:
成员变量1;
成员变量2;
...
成员函数1声明;
成员函数1定义;
...
访问范围说明符:
更多成员变量;
更多成员函数声明或定义;
...
};
成员函数1类型 类名::成员函数1(参数列表)
{
}
成员变量是在类中声明的变量。同样地,成员函数是指在类中声明的函数,如上类的声明式所示,成员函数可以在类的声明体中定义,也可以在类的声明体之外定义。在类的声明体外定义的函数需要用类名和作用域运算符(类名::
)限定函数所属的类。
声明的类是一种自定义的数据类型,可使用它来声明和定义变量,称为类的实例化,定义的变量称为类的对象。实例化的过程是为对象分配内存空间,对象所占内存空间的大小由其所有成员变量的大小之和。
在类的成员函数内部,可以直接使用类中的成员变量和成员函数,不必显示地去引用某个对象。而类外的函数调用类的成员函数,要使用标准的成员访问语法访问,通过对象、对象指针和对象引用访问对象的成员变量和对应的类的成员函数。以下是访问类的成员变量和函数的三种方式:
对象名.成员名;
对象指针->成员名;
对象引用.成员名
/*****************************************
* class_member_function.cpp *
* *
* C++的类定义和成员函数 *
*****************************************/
class CRectangle
{
private:
int w;
public:
int h;
void Init(int _w, int _h)
{
w = _w;
h = _h;
}
int Area();
int Perimeter()
{
return 2 * (w + h);
}
};
int CRectangle::Area()
{
return w * h;
}
#include <iostream>
int main()
{
CRectangle r;
r.Init(10,20);
std::cout<<"Its height is "<<r.h<<std::endl;
std::cout<<"Its area is "<<r.Area()<<std::endl;
std::cout<<"Its perimeter is "<<r.Perimeter()<<std::endl;
return 0;
}
参考文献
- Bjarne Stroustrup著,裘宗燕译. C++程序设计语言(特别版).机械工业出版社 2009.
- https://www.coursera.org/course/pkupop