#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;
}
出力に空の文字列があります。このような動作についてC++標準は何を言っていますか?ここでは、少なくとも二つの問題が存在しなければならない他のコンストラクタ内でコピーコンストラクタを呼び出す
Auwgh、私は今、本当にコーヒーが必要です。 –
GCC 4.5の出力で 'string'を取得しました – CapelliC
これは 'new(this)A(* this);'他のコンストラクタ内でコピーコンストラクタを呼び出していますか? –