2017-07-30 6 views
-1

ヒープに新しいオブジェクトを割り当てる場合、オブジェクトのクラス内でヒープ上に定義されているすべての変数がありますか?C++ヒープオブジェクトにスタックメンバーまたはヒープメンバーがありますか?

たとえば、_posという配列内にx、y、z座標を持つNodeクラスがあるとします。多くのNodeオブジェクトを作成するユーザーのために、ノードは次のようにヒープ上に宣言されています。

class Node { 
public: 
    Node(double x, double y, double z) { 
    _pos = new double[3] {x, y, z}; 
    } 

private: 
    double* _pos; 
} 

または_pos配列です:

Node n = new Node(0, 0, 0); 

私としても、ヒープ上の位置配列を宣言する必要がありますすでにヒープ上で検討し、次のようにうまく機能

私はそれがまた少し簡単に解除になり、その場合にも、ヒープ上考えられている秒1を、推測しているが、私はS願ってい
class Node { 
public: 
    Node(double x, double y, double z) { 
    _pos = double[3] {x, y, z}; 
    } 

private: 
    double* _pos; 
} 

オメオが確認できます。

+0

"ヒープ上の位置配列も宣言すべきですか?"いいえ、必要ありません。 (なぜでしょうか?) – DimChtz

+0

どちらの選択肢もまったく違うことをします。ここには「正しい」または「間違った」はありません。アプリケーションの残りの部分がこれらのオブジェクトをどのように使用しているかだけ知っているので、正解が何であるかはあなただけが知っています。正しい答えを決定するためには、C++の本がオブジェクト、自動スコープ、およびダイナミックスコープについて説明した説明を見直す必要があります。 –

答えて

0

ヒープに新しいオブジェクトを割り当てる場合、オブジェクトのクラス内でヒープにもすべての変数が定義されていますか?

はい。

関連する問題