私はC++を初めて使用しています。他の型の関数宣言を持つC++の型安全性違反?
#include<iostream>
void t(){
std::cout << "func t()" << std::endl;
}
int main(int argc, char **argv) {
int t(); //declaration of function
std::cout << t() << std::endl;
}
出力は "func t()\ n6295712"です。私の懸念は、t()によって印刷されたランダム(?)番号です。
私の質問は次のとおりです。エラーが発生していない別の戻り値型の関数(ここではintでvoidではなく)を宣言できるのはなぜですか?戻り値の型 "int"を持つ関数を決して定義していないので、これは型の安全性に違反していませんか?
使用されるコンパイラ:gccの(Ubuntuの4.8.4-2ubuntu1〜14.04.1)4.8.4
私の出力は 'func t()\ n6295680'です。これは** **' 6295712'とだけ異なります。あなたのプログラムは実際にその番号だけを印刷していますか? –
あなたは正しいです、私はそれを編集しました - 私は数に気を配り、他の出力を忘れていました。ありがとう –
はwtfを確認できますhttp://coliru.stacked-crooked.com/a/f9b957636b731736 –