Em có 1 đoạn code như sau:
#include <string>
#include <iostream>
using namespace std;
class S {
public:
string name_;
S(string const& name) : name_(name) { cout << "create " << name << endl; }
~S() { cout << "destroy " << name_ << endl; }
};
S one("one");
int main() {
S two("two");
//eleven.name_; error 'eleven' was not declared in this scope
}
S eleven("eleven");
cho output là:
create one
create eleven
create two
destroy two
destroy eleven
destroy one
Mọi người cho em hỏi là tại sao hàm khởi tạo của eleven lại được gọi trước two và tại sao hàm khởi tạo của eleven được dùng rồi mà lại không sử dụng được eleven.