申し訳ありませんが、戻り値なしのC++関数
私はC++で遊んでいました。私は奇妙なことをしていました。
MAIN.CPP
#include <iostream>
#include "c1.h"
using namespace std;
Classe c(){
Classe v();
}
int main(){
cout << c().x;
return 0;
}
c1.h
#include <iostream>
using namespace std;
class Classe{
public:
Classe(){
x = 100;;
}
int x;
};
だから、私はCを呼び出すことができた理由()関数クラッセのC(){クラッセvは()}戻りいけないX場合変数?
-wallの有無にかかわらず警告はありません。
私はそれをコンパイルいけない機能にVを返さない場合:
main.cppに:機能 'においてクラッセのC()': main.cppに:8:エラー:リターンで エラーメッセージからの変換を非スカラー型 'Classe'への 'Classe(*)()'が要求されました
警告を有効にしてコンパイルを試してください。 gccの '-wall'は' c'から値を返さないことを警告します。 – Thomas
ですが、この機能はどのように機能しますか? (戻り値なしで関数を渡してオブジェクトを作成する) – gaussblurinc
値を返さないと変数xにアクセスできます。 – Lefsler