#include <stdlib.h>
#include <iostream>
#include <vector>
#include <string>
class A
{
public:
std::string s;
A()
{
s = "string";
new(this)A(*this);
}
};
int main()
{
A a;
std::cout<<a.s;
return 0;
}
Tôi nhận được chuỗi trống trong đầu ra. Tiêu chuẩn C++ nói gì về hành vi như vậy?gọi hàm tạo bản sao bên trong hàm tạo khác
Auwgh, giờ tôi thực sự cần một chút cà phê. –
Tôi nhận được 'chuỗi' trên đầu ra với GCC 4.5 – CapelliC
là: 'new (this) A (* this); 'gọi constructor sao chép bên trong constructor khác? –