前提・実現したいこと
いま教本を使って勉強して、自分でクラスを書いてみているのですが、エラーが出ています。
どこが間違っているのか検討が着かなくなってしまいました。
クラスの正しい書き方、メンバー変数とメンバー関数の正しい書き方を具体的に知りたくて質問しました。
発生している問題・エラーメッセージ
classes:16:1: error: 'm' does not name a type m.x = 10; ^ classes:17:1: error: 'm' does not name a type m.y = 20; ^ classes:18:1: error: 'm' does not name a type m.go(10, 20); ^ c:\Users\a\Dropbox\!Arduino\class\classes.ino: In function 'void setup()': classes:23:48: error: no matching function for call to 'HardwareSerial::println(const char [17], int&, int&)' Serial.println("x is %d, y is %d", m.x, m.y); ^ In file included from C:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino/Stream.h:26:0, from C:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino/HardwareSerial.h:29, from C:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino/Arduino.h:233, from sketch\classes.ino.cpp:1: C:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino/Print.h:77:12: note: candidate: size_t Print::println(const __FlashStringHelper*) size_t println(const __FlashStringHelper *); ^~~~~~~ C:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino/Print.h:77:12: note: candidate expects 1 argument, 3 provided C:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino/Print.h:78:12: note: candidate: size_t Print::println(const String&) size_t println(const String &s); ^~~~~~~ C:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino/Print.h:78:12: note: candidate expects 1 argument, 3 provided C:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino/Print.h:79:12: note: candidate: size_t Print::println(const char*) size_t println(const char[]); ^~~~~~~ C:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino/Print.h:79:12: note: candidate expects 1 argument, 3 provided C:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino/Print.h:80:12: note: candidate: size_t Print::println(char) size_t println(char); ^~~~~~~ C:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino/Print.h:80:12: note: candidate expects 1 argument, 3 provided C:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino/Print.h:81:12: note: candidate: size_t Print::println(unsigned char, int) size_t println(unsigned char, int = DEC); ^~~~~~~ C:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino/Print.h:81:12: note: candidate expects 2 arguments, 3 provided C:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino/Print.h:82:12: note: candidate: size_t Print::println(int, int) size_t println(int, int = DEC); ^~~~~~~ C:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino/Print.h:82:12: note: candidate expects 2 arguments, 3 provided C:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino/Print.h:83:12: note: candidate: size_t Print::println(unsigned int, int) size_t println(unsigned int, int = DEC); ^~~~~~~ C:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino/Print.h:83:12: note: candidate expects 2 arguments, 3 provided C:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino/Print.h:84:12: note: candidate: size_t Print::println(long int, int) size_t println(long, int = DEC); ^~~~~~~ C:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino/Print.h:84:12: note: candidate expects 2 arguments, 3 provided C:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino/Print.h:85:12: note: candidate: size_t Print::println(long unsigned int, int) size_t println(unsigned long, int = DEC); ^~~~~~~ C:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino/Print.h:85:12: note: candidate expects 2 arguments, 3 provided C:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino/Print.h:86:12: note: candidate: size_t Print::println(double, int) size_t println(double, int = 2); ^~~~~~~ C:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino/Print.h:86:12: note: candidate expects 2 arguments, 3 provided C:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino/Print.h:87:12: note: candidate: size_t Print::println(const Printable&) size_t println(const Printable&); ^~~~~~~ C:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino/Print.h:87:12: note: candidate expects 1 argument, 3 provided C:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino/Print.h:88:12: note: candidate: size_t Print::println() size_t println(void); ^~~~~~~
該当のソースコード
Arduino
1class Move 2{ 3public: 4 int x; 5 int y; 6 void go(int w, int h); 7}; 8 9void Move::go(int w, int h) 10{ 11 x += w; 12 y += h; 13} 14 15Move m; 16m.x = 10; 17m.y = 20; 18m.go(10, 20); 19 20void setup() 21{ 22 Serial.begin(9600); 23 Serial.println("x is %d, y is %d", m.x, m.y); 24} 25 26void loop() 27{ 28 29}
補足情報(FW/ツールのバージョンなど)
C/C++のクラスは生まれて初めて書きました。つっこみ満載かと思われますが、ご指摘頂けると助かります。
何卒よろしくお願いいたします。
回答3件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/06/20 11:54