Oop 箭头比Arduino C中的点好吗?
我在看一个SparkFun库,该库由一个人修改,以便添加更多函数并删除一些未使用的函数,以便了解库编写的更多信息。我不明白的是,为什么SF库中带有->的部件被转换为这个person库中的。例如: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
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 < /代码>。非常好的答案。谢谢这个例子。