我想知道使用C++使类构造函数从有限列表中获取参数的最佳方法是什么。例如,如果我有一个名为colour
的类,那么构造函数将只接受red
、green
或blue
并将值存储到私有变量中。然后,我将有一个名为printcolour
的方法,它将打印变量。
目前,我已经能够使这个工作:
#include <iostream>
using namespace std;
class MyClass
{
public:
typedef enum { A = 3, B = 7 } Options_t;
MyClass(Options_t);
void printVal(void);
private:
Options_t _val;
};
MyClass::MyClass(Options_t val)
{
_val = val;
}
void MyClass::printVal(void)
{
cout << _val << endl;
}
MyClass hi(MyClass::A);
int main(void)
{
hi.printVal();
return 0;
}
但是,用来访问类的结构的::
符号似乎有点笨拙(我想编写一个Arduino库,所以初学者可能需要使用构造函数/方法。
有没有更好的方法(可能使用.
表示法?)谢谢!
如果您只想在创建hi时这样做,那么您可以
MyClass hi(hi.A);
但是,在您的类中,必须使用命名空间访问器::
。.
用于访问实例的成员,而不是实际的类内容。
他们可能在这里解释得更好:在C++中,我什么时候使用点号、箭头或双冒号来引用类的成员?这里是:“::”“之间有什么区别。”和“->”