ดังนั้นในขณะที่ฉันทำการคอมไพล์ที่มีความยาวฉันตัดสินใจที่จะทำการทดสอบทั่วไป C ++ บน ODesk และเจอคำถามนี้
ถ้าฉันไม่ผิดให้ถ้อยคำ (หรือขาดมัน) สิ่งเหล่านี้อาจเป็นจริง
a.
int Foo() { }
int Foo(int bar) { }
ข
ดีreturn void;
จะไม่ถูกต้องความหมาย แต่ฟังก์ชั่นอย่างเห็นได้ชัดสามารถมีvoid
ประเภทผลตอบแทน
void Foo() { }
ค. นี่คือนิยามของฟังก์ชั่นอินไลน์ใช่
d โดยไม่ต้องลงรายละเอียดมากเกี่ยวกับการจัดวางองค์ประกอบต่อไปนี้
typedef void (*Func)(int);
Func functions[2];
void Foo(int bar) { }
void Bar(int foo) { }
functions[0] = &Foo;
functions[1] = &Bar;
นอกจากนี้คุณก็สามารถทำได้โดยใช้lambdas และ functors
อี
void Foo(int& bar)
{
++bar;
}
int foobar = 5;
Foo(foobar);
ฉ
int bar = 5;
int& GetBar()
{
return bar;
}
GetBar() = 6;
ก.
int bar = 5;
int* GetBar()
{
return &bar;
}
(*GetBar()) = 5;
ฉันไม่สามารถดูได้ว่าคำถามนี้มีคำตอบที่ผิดใด ๆ หรือไม่ ฉันพลาดอะไรไปรึเปล่า?
ไม่จำเป็นต้องบอกว่าฉันหมดเวลาและล้มเหลวทุกอย่าง ฉันเดาว่าฉันเป็นโปรแกรมเมอร์ C ++ ที่ไม่ดี :(