创建对所有对象都相同的 属性
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 的所有实例都是相同的。
如何创建对 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 的所有实例都是相同的。