访问私有变量

题目描述

补全代码,使输出符合要求。

关于输入

关于输出

见样例输出。

核心技巧

  • age 作为 Person 类的私有变量,无法被普通函数访问,可以通过如下两种方式访问:
    1. 声明某函数为 Person 类的友元函数;
    1. 通过 Person 类内的成员函数访问。

参考答案

#include <iostream>
using std::cout, std::endl;
class Person {
public:
    Person(int x) : age{x} {}
private:
    int age;
public:
    friend void grow(Person* p, int num);
    static void print(Person* p, int num) {
        for (int i = 0; i < num; i++) {
            cout << p[i].age << " ";
        }
        cout << endl;
    }
};
void grow(Person* p, int num) {
    for (int i = 0; i < num; i++) {
        p[i].age++;
    }
}
int main() {
    Person people[3]{28, 45, 8};
    Person::print(people, 3);
    grow(people, 3);
    Person::print(people, 3);
}