Tôi mới tham gia C++ và toàn bộ ý tưởng về lớp học - Tôi vẫn đang đọc một cuốn sách để thử và tìm hiểu. Cuốn sách tôi đang đọc nói rằng khi tôi xây dựng một lớp học, tôi có thể gán giá trị mặc định bằng cách làm này:Xây dựng lớp học với giá trị ban đầu
class foo {
public:
foo(char c, int i);
private:
char exampleChar;
int exampleInt;
};
foo::foo(char c, int i):
exampleChar(c),
exampleInt(i)
{}
Mã này (với tôi) trông rất lộn xộn và không theo quy tắc mà tôi được sử dụng cho các ngôn ngữ khác. Câu hỏi của tôi là, sự khác biệt giữa việc làm ở trên là gì, và điều này (dưới đây, cá nhân tôi nghĩ rằng trông sạch hơn rất nhiều)?
foo::foo(char c, int i) {
exampleChar = c;
exampleInt = i;
}
Sắp xếp của những điều tôi đang suy nghĩ về là: đang có vấn đề hiệu suất/hiệu quả nếu được thực hiện trên quy mô lớn - hoặc là nó giống hệt nhau?
"Mã này ... không tuân theo các quy tắc mà tôi đã quen với các ngôn ngữ khác" Vâng, C++ không phải là một trong những ngôn ngữ khác. Có rất nhiều điều trong C++ khác với "ngôn ngữ khác" (và, có thể, có rất nhiều thứ trong mỗi ngôn ngữ khác khác với những ngôn ngữ khác). –
các câu hỏi rất giống nhau: http://stackoverflow.com/questions/1598967/benefits-of-initialization-lists, http://stackoverflow.com/questions/926752/why-should-i-prefer-to-use-member -initialization-list, http://stackoverflow.com/questions/4589237/c-initialization-lists, và có lẽ nhiều hơn nữa –