Vì vậy, trong khi tôi đang thực hiện một số biên dịch dài, tôi quyết định thực hiện bài kiểm tra chung C ++ trên ODesk và bắt gặp câu hỏi này.
Nếu tôi không nhầm, đưa ra từ ngữ (hoặc thiếu từ đó), tất cả những điều này có thể đúng.
a.
int Foo() { }
int Foo(int bar) { }
b.
Vâng, return void;
sẽ không chính xác về mặt ngữ nghĩa nhưng các chức năng rõ ràng có thể có void
kiểu trả về.
void Foo() { }
c. Đây là định nghĩa của các hàm nội tuyến, vâng.
d. Không đi sâu vào chi tiết về vị trí của các yếu tố sau,
typedef void (*Func)(int);
Func functions[2];
void Foo(int bar) { }
void Bar(int foo) { }
functions[0] = &Foo;
functions[1] = &Bar;
Hơn nữa, bạn luôn có thể làm điều này bằng cách sử dụng lambdas và functor .
e.
void Foo(int& bar)
{
++bar;
}
int foobar = 5;
Foo(foobar);
f.
int bar = 5;
int& GetBar()
{
return bar;
}
GetBar() = 6;
g.
int bar = 5;
int* GetBar()
{
return &bar;
}
(*GetBar()) = 5;
Tôi không thấy câu hỏi này có câu trả lời thực sự sai ở đâu . Tui bỏ lỡ điều gì vậy?
Không cần phải nói tôi đã hết thời gian và thất bại toàn bộ. Tôi đoán tôi là một lập trình viên C ++ tồi. :