C++ 特殊类、函数和指针的使用
在 C++ 编程中,有许多特殊的类、函数和指针的使用方法可以让我们的代码更加灵活和强大。下面我们将详细介绍静态成员变量、静态成员函数、类的包含、友元类和函数以及函数指针等相关内容。
1. 静态成员数据
通常,我们认为类中每个对象的数据是唯一的,不被该类的其他对象共享。例如,有五个 Robot
对象,每个对象都有自己的年龄、重量等数据,一个对象的年龄不会影响其他对象的年龄。
但有时我们需要跟踪类中所有对象共享的信息,比如想知道创建了多少个 Robot
对象以及还有多少个对象存在。此时就可以使用静态成员变量,它被类的所有实例共享,处于全局数据(程序所有部分都可访问)和成员数据(通常仅每个对象可访问)之间。可以把静态成员看作属于类而不是对象,普通成员数据每个对象一份,而静态成员每个类一份。
以下是 StaticRobot.cpp
代码示例:
#include <iostream>
class Robot
{
public:
Robot(int newAge = 1):age(newAge){ howManyRobots++; }
virtual ~Robot() { howManyRobots--; }
virtual int getAge() { return age; }
virtual void setAge(int newAge) { age = newAge; }
static int howManyRob