如何将对象或引用传递给函数?

Posted

技术标签:

【中文标题】如何将对象或引用传递给函数?【英文标题】:How to pass an object or reference to a function? 【发布时间】:2020-07-16 07:45:27 【问题描述】:

我想在下面寻求帮助..

#include <Encoder.h>

// Default Encoder class
Encoder mainEncoder( 2, 3 );

// My class
class MyClass 

  private:
    Encoder *Enc;
    int value;

  public:
    MyClass( Encoder *Enc, int value ) 
      Enc->write( value );
    

    int read() 
      return Enc->read();
    



// Create..
MyClass Encoder( &mainEncoder, 50 );

// Loop...
int encoderOut = Encoder.read();

这种方式根本行不通。

【问题讨论】:

阅读一些好的 C++ programming book 然后查看 this C++ reference 并阅读 C++ 编译器的文档 通过使用类名作为变量名 (Encoder),您正在搜索 en.wiktionary.org/wiki/mischief。至少,你把自己弄糊涂了。 【参考方案1】:

代码没有初始化MyClass::Enc(也没有初始化value)。

修复:

MyClass( Encoder *Enc, int value ) 
    : Enc(Enc) // <---- initialize Enc.

    Enc->write(value);

【讨论】:

以上是关于如何将对象或引用传递给函数?的主要内容,如果未能解决你的问题,请参考以下文章

通过指针或引用将映射传递给函数?

将“引用”作为函数参数有哪些特点?

返回引用类型的返回引用的好处

将引用传递给 C++ 构造函数并将它们保存为引用或非引用类型

将 const 对象引用传递给仿函数

将引用传递给对象有啥好处? [复制]