10
このコードはなぜ機能しますか? f
関数の引数については、class
というキーワードを先頭に表示していますか?それを追加すれば何が変わるのですか?関数の引数の前にあるclassキーワードは何ですか?
struct A
{
int i;
};
void f(class A pA) // why 'class' here?
{
cout << pA.i << endl;
}
int main()
{
A obj{7};
f(obj);
return 0;
}
ので、ここで 'class'を' typename'と同じですか? – Narek
@Narek:いいえ。この例(またはあなたのもの)では 'typename'を使ってみてください。失敗すると分かります。 –
この回答は少し間違っています。あなたは精巧な型指定子を使うことは常に許可されています。しかし、主要な*ユースケース*は、同じ名前の関数または変数を持つ場合です。 –