C++
1#include <memory> 2 3using namespace std; 4 5class MyClass { 6public: 7 ~MyClass() {}; 8 MyClass * GetMyClass(bool var); 9private: 10 MyClass() {}; 11}; 12 13MyClass::MyClass * GetMyClass(bool var) { 14 return (var) ? new * MyClass : 0; 15} 16 17int main() { 18 auto_ptr<MyClass> mc = GetMyClass(true); 19 20 return 0; 21}
###質問
上記ソースコードで、GetMyClass()をコール、trueの場合にコンスラクタをコール、インスタンスを取得していますが、
GetMyClass()をコールした時点でMyClassを使用する為、コンストラクタが実行されるのではないのでしょうか?
###補足情報(言語/FW/ツール等のバージョンなど)
C++について勉強中の為、上記ソースコードに文法エラー等がありましたら申し訳ありません。
ご教授、お願いいたします。
提示コードはideone.comのC++14環境ではコンパイルエラーが発生しました。まずはコンパイル可能なコードを提示しないと回答得られにくいと思われます。
can110さん ご指摘ありがとうございます。週末にコンパイルが通るものを再投稿いたします。
まずはLouiS0616さんの回答を確認された後でよいかと思います。
can110さん サンプルコードを追い、理解を深めようと思います。
たとえばhttps://ideone.com/などのオンライン実行環境でコンパイル~実行が簡単にできます。お試しあれ。
can110さん ideoneを試してみました。外出中にコンパイルが通るかどうか、簡単な記述ミス等のチェックに使いたいと思います。 ありがとうございます。
回答3件
あなたの回答
tips
プレビュー