【问题标题】:Arduino object constructor in class sets rubbish values类中的 Arduino 对象构造函数设置垃圾值
【发布时间】:2020-09-17 22:02:05
【问题描述】:

我目前正在尝试为 Arduino 项目创建一个具有非默认构造函数的成员对象的类。该对象是一个指针,以便我可以在构造MyClass时构造(MyObjClass *my_obj;)

// MyObjClass:
class MyObjClass(){
    const int param;
public: 
    MyObjClass(const int param): param(param){ ... }
};

// MyClass:
class MyClass(){
     MyObjClass *my_obj;
public:
     MyClass::MyClass(const int param): my_obj(param){ ... }
};

它构建得很好,但是my_obj 中的值参数是垃圾(随机值)。它是否已经在构造函数调用之前初始化了对象?我的解决方法是不使用 const 值,但必须有更好的方法(正确的方法)。

【问题讨论】:

  • MyObjClass *my_obj;my_obj 声明为指针,您无法使用my_obj(param) 对其进行初始化。类名后面的() 是什么?

标签: c++ class parameters constructor arduino


【解决方案1】:

您持有指向MyObjClass 的指针并尝试用一些int 初始化他,即 正确的方法是my_obj(new MyObjClass(param))

另外我建议使用智能指针来避免内存泄漏。

【讨论】:

猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-07-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-08-22
  • 2011-12-17
相关资源
最近更新 更多