Tulisan ini didasari pada pengalaman yang saya dan teman-teman alami ketika masuk kelas pemrograman di kuliah. Saya dan beberapa teman2 di tugaskan untuk membuat program sederhana menggunakan aplikasi C++. Kendala yang kami alami adalah ketika semua code sudah selesai di tulis di C++, ketika menekan F9 untuk mengetahui apakah scrypt yg kami tulis sudah benar atau tidak muncul error yang begitu banyak. dan di aplikasi C++ yang kami gunakan di beritahu syntax error yang terjadi.
Karena masih pemula dalam pemrograman saya dan teman-teman merasakan kesulitan memahami maksud error yang muncul. Berangkat dari pengalaman tersebut, saya mencoba untuk search di google daftar list syntax/parsing error pada pemrograman C++ agar ketika mengalami syntax/parsing error di kemudian hari pada C++ saya dan teman-teman dapat langsung mengetahui dan memperbaiki syntax atau parsing error yg terjadi.
Karena masih pemula dalam pemrograman saya dan teman-teman merasakan kesulitan memahami maksud error yang muncul. Berangkat dari pengalaman tersebut, saya mencoba untuk search di google daftar list syntax/parsing error pada pemrograman C++ agar ketika mengalami syntax/parsing error di kemudian hari pada C++ saya dan teman-teman dapat langsung mengetahui dan memperbaiki syntax atau parsing error yg terjadi.
beberapa syntax error pada C++
"expected constructor, destructor, or type conversion before ‘namespace’"
ini terjdi karena kita menggunakan kata "use" yang seharusnya "using"
contoh :
Salah #include <iostream> use namespace std; // "using" is correct, not "use" int main(void) { cout << "A"; return 0; }
Benar
#include <iostream> using namespace std; // that's better! int main(void) { cout << "A"; return 0; }
2. "expected initializer before numeric constant"
kita lupa untuk meletakkan tanda "=" sebelum angka
salah
void foo() { int i 2; // no =! }
Benar
void foo() { int i = 2; // ahhh, better!
}
3. "expected initializer before ‘x’"
kita lupa meletakkan tanda "=" sebelum x
salah
void foo() { int x = 2; int y x; // should be an equals sign }
benar
void foo() { int x = 2; int y = x; // ahhh, better! }
4. " expected primary-expression before ‘=’ token"
terjadi jika kita meletakkan tanda "=" pada #define
salah
#define PI = 3.1425926 // = is incorrect
void foo() { int i = PI; }
benar
#define PI 3.1425926 // ahhh, better!
void foo() { int i = PI; }
5. "expected unqualified-id before ‘)’ token"
terjadi ketika kita meletakkan tanda kurung "()"
salah
class Foo() // extraneous () { // stuff }
benar
class Foo // no () { // stuff }
atau bisa terjadi ketika kita meletakkan tanda ; pada akhir sebuah define
salah
#define STUFF 1.0; MyClass() : myVar(STUFF) //STUFF puts extraneous ; in
benar
#define STUFF 1.0
6. expected identifier before ‘&’ token
kita meletakkan tanda & di tempat yang salah
salah
void foo(&int bar) // ampersand goes before bar { // stuff }
benar
void foo(int &bar) // the ampersand is in the right place now { // stuff }
7. expected `)' before ‘tile’
salah
class Blort { Blort(Foo); };
#include "blort.h" Blort::Blort(Foo aFoo) { // Foo not defined // stuff }
benar
class Foo { // stuff }
#include "foo.h" // now Foo is defined Class Blort { Blort(Foo); };
#include "blort.h" Blort::Blort(Foo aFoo) { // stuff }
8. expected ‘;’ before ‘}’ token
kita lupa meletakkan tanda semicolon ";" pada satu block code
salah
class Foo { int i; int j // no semicolon };
benar
class Foo { int i; int j; // semicolon };
9. expected `;' before numeric constant
- kita lupa meletakkan tanda "<<" pada bagian printing
salah
#include <iostream> using namespace std; int printTwo() { cout << "there are " 2 << " apples" << endl; // missing "<<" }
benar
#include <iostream> using namespace std; int printTwo() { cout << "there are " << 2 << " apples" << endl; // better! }
- atau bisa terjadi jika kita lupa meletakkan tanda "()" pada exit statement
salah
int main(void) { exit 3; // wrong }
benar
int main(void) { exit(3); // right }
atau bisa terjadi jika kita mendefenisikan sebuah isi untik sebuah varibel dan kita menggunakan variabel yang sama pada fungsi defenisi
salah
#define N 10 ... main(){ ... theFunction(N); //function call ... } void theFunction(int N) //wrong!!! N is replace by 10 in pre processing {}
benar
#define N 10 ... main(){ ... theFunction(N); //function call ... } void theFunction(int n) //right !!! change from N to n different variable {}
10. expected `;' before string constant
lupa meletakkan tanda "<<" pada bagian akhir printing
salah
#include <iostream> using namespace std; int foo(int count) { cout << "there are " << count " apples" << endl; // missing "<<" }
benar
#include <iostream> using namespace std; int foo(int count) { cout << "there are " << count << " apples" << endl; // ahhh, better! }
11. expected `:' before ‘int’
kita lupa meletakkan tanda ":" setelah privacy indicator pada bagian class declaration
salah
class Foo { public int getOne() // missing : { return 1; } public int getTwo() // don't need to repeat { return 1 + getOne(); } };
benar
class Foo { public: // say "public" once here int getOne() { return 1; } int getTwo() { return 1 + getOne(); } };
12. expected initializer before ‘Foo’
salah
#include "Foo.h" class Bar extends Foo { // stuff };
benar
#include "Foo.h" class Bar: public Foo { // stuff };
13. expected class-name before ‘{’ token
salah
class Foo: public Bar // Foo is a subclass of Bar { // stuff };
benar
#include "Bar.h" // this makes Bar recognized class Foo: public Bar { // stuff };
14. undefined reference to `std::basic_string<char, std::char_traits<char>, std::allocator<char> >::basic_
salah
Makefile:
foo: foo.o cc testLatLngToPixel.o -o testLatLngToPixel # cc doesn't work for some reason (blank line) .cc.o: g++ -v -g -c $<
foo.cc: #include <iostream> #include <string> using namespace std; int main () { string bar; }
benar
Makefile:
foo: foo.o g++ testLatLngToPixel.o -o testLatLngToPixel # g++ (blank line) .cc.o: g++ -v -g -c $<
foo.cc:
#include <iostream> #include <string> using namespace std; int main () { string bar; }
sumber saya ambil dari http://cplusplus.syntaxerrors.info/index.php?title=Main_Page
No comments:
Post a Comment