创建对所有对象都相同的 属性

Creating a property that is the same for all objects

如何创建对 class 创建的所有对象都相同的 属性。为了能够设置此 属性 一次并进一步创建所有对象,已经设置了此 属性。

LinuxARM64

class gpio {
    public:

    // some object properties
    string board_name;
    int phy_gpio;

    // Default constructor
    gpio() {

    }

    // Parameterized Constructor
    gpio (int phy_pin_num) {
        ...
    }

    // method specifying the board_name property
    void set_board (string board) {
        board_name = board;
    }

    privare:

};

问题是gpio端口号取决于板子的型号。 需要先把board model设置一次,然后用来创建gpio的objects class.

板的名称必须在创建 gpio 对象之前设置,也就是说,在使用任何可用的构造函数创建任何可用的 class 对象之前。

您看过 static 关键字了吗? 如果我理解正确,在你初始化你的第一个 GPIO 之后,你可以设置它的模型,并且每个其他 gpio 应该具有相同的值。

// Example program
#include <iostream>
#include <string>

using namespace std;

class gpio {
   public:

   static string board_model;
   gpio() {}
   ~gpio() {}
   string returnModel() {return board_model}
};

string gpio::board_model = "none";

int main()  {

    gpio pin;
    std::cout << pin.returnModel() << std::endl;
    return 0;
}

如果我清楚地理解你的问题,final 关键字将解决你的问题。如果您使用:

final string board_name = "Some Value"

board_name 的值对于 gpio class 的所有实例都是相同的。