プロトタイプがvoid foo(Object &)
の関数にポインタ(Object *ob
)を渡すにはどうすればよいですか?あなたの質問のタイトルで提案されているように、ここで起こって何の鋳造がないことC++でポインタを参照へキャスト/変換する方法
foo(*ob);
注:
プロトタイプがvoid foo(Object &)
の関数にポインタ(Object *ob
)を渡すにはどうすればよいですか?あなたの質問のタイトルで提案されているように、ここで起こって何の鋳造がないことC++でポインタを参照へキャスト/変換する方法
foo(*ob);
注:
はこのようにそれを呼び出します。すべての作業は、オブジェクトへのポインタを参照解除してから関数に渡します。ポインタをキャストするための
@Ricobobそれは非常に頻繁に起こることだと言いました。容易に理解できる簡単な質問への答えは、しばしば多くの票を集める。厄介な質問に対する長くて複雑な答えは、有権者がメリットを容易に判断できないため、多くのアップフォースを得ることはよくありません。 repに関しては、rep capのために何も得られませんでした。 ;-)しかし、私は心から同意します。私は複雑な答えがより多くの担当者を得たことを望む。 –
@DavidHeffernanはい、これは問題だと思われます。誰かがそれをすでに持ち上げていなければ、MetaSOに取るべき問題があると思います。 – Ricibob
@ricobob私はそれがすでに起こっていると思います。 –
foo(*ob);
多くのものを追加していると推測するのは通常、良い答えの形式ではありませんここに(この場合は正しいが)、それはおそらくあなたが1つのdownvoteを持っている理由です。 – KillianDS
bhhaaa、私は少なくとも私は30文字を書くようにしたので、 "私は推測"を追加しました。それはまた私が "..........."を追加する方法です –
@RoeeGavirel私はあなたの最初の有権者です。私はdownvoteが厳しいと感じたからです。 FWIWでは30文字の制限を超えることができますが、私がやったHTMLコメント<!----------------------------->答えの私の最初のバージョン!あなたの答えに私の編集方法を示しています。 –
全例では、タイトルが "[原文]ポインタへの参照をキャスト" と言う
class myClass
{
public:
void sayHello()
{
cout << "Hello";
}
};
int main()
{
myClass* myPointer;
myClass myObject = myClass(* myPointer); // Cast pointer to object
myObject.sayHello();
return 0;
}
ここには多くの問題があるので、私は驚いています。 まず、myPointerは初期化されていません。新しいmyClass()はどこですか? 第2に、 '//オブジェクトへのポインタをキャストする 'と書かれた行はそうして、コピーの束をします。逆参照されていない初期化されていないポインタから別のmyClassを作成し、それがmyClass myObjectに割り当てられたときに(コンパイラによって異なる) –
をオブジェクトへのが、質問は、ポインタで始まります参照が必要です。それはどちらの方向ですか? – MSalters
@MSalters * convert *にする必要があります。私はそれを編集しています。しかし、私は何か解決策を探していたので、私はキャスト* – Dewsworld