Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/arduino/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Oop 箭头比Arduino C中的点好吗?_Oop_Arduino_Operators - Fatal编程技术网

Oop 箭头比Arduino C中的点好吗?

Oop 箭头比Arduino C中的点好吗?,oop,arduino,operators,Oop,Arduino,Operators,我在看一个SparkFun库,该库由一个人修改,以便添加更多函数并删除一些未使用的函数,以便了解库编写的更多信息。我不明白的是,为什么SF库中带有->的部件被转换为这个person库中的。例如: while(!uart->available()){ #include <iostream> class Dog { public: void Bark() { std::cout << "Woof!" << std::end

我在看一个SparkFun库,该库由一个人修改,以便添加更多函数并删除一些未使用的函数,以便了解库编写的更多信息。我不明白的是,为什么SF库中带有->的部件被转换为这个person库中的。例如:

while(!uart->available()){
#include <iostream>

class Dog {
    public:
    void Bark() {
        std::cout << "Woof!" << std::endl;
    }
};

int main() {
    Dog spot;
    Dog * pointer_to_spot = & spot;

    spot.Bark();
    // spot->Bark(); // ERROR: spot cannot be dereferenced.

    pointer_to_spot->Bark();
    // pointer_to_spot.Bark(); // ERROR: pointer_to_spot is not an object.

    return 0;
}
被改写为

while(!uart.available()){
还更改了对方法的某些调用:

uart->print(F("$$$"));
为了


一种方式比另一种好吗?更有效率?有什么影响?

< P> <代码> >代码> >代码> ./Cord> C++中的操作符是相似的,但不能互换。它们都允许您引用对象的成员。但是,
仅在与真实对象一起使用时有效,而
->
仅在有指向对象的指针时有效

例如:

while(!uart->available()){
#include <iostream>

class Dog {
    public:
    void Bark() {
        std::cout << "Woof!" << std::endl;
    }
};

int main() {
    Dog spot;
    Dog * pointer_to_spot = & spot;

    spot.Bark();
    // spot->Bark(); // ERROR: spot cannot be dereferenced.

    pointer_to_spot->Bark();
    // pointer_to_spot.Bark(); // ERROR: pointer_to_spot is not an object.

    return 0;
}
#包括
班犬{
公众:
空树皮(){
std::cout Bark();
//指向_-spot.Bark();//错误:指向_-spot的指针不是对象。
返回0;
}

< /代码>这是在任何C++或C++书籍中所涵盖的,你应该选择一个。在几乎所有的情况下,<代码> x> > y>代码>相当于<代码>(*x)。y < /代码>。非常好的答案。谢谢这个例子。