0
&を使って関数を持つオブジェクトを返すのはなぜですか?&(C++)を使用せずに関数を使ってオブジェクトを返す
がclass Point
{
public:
Point(int x, int y);
int getX() const;
int getY() const;
void setX(int x);
void setY(int y);
void print() const;
private:
int x, y;
};
class Circle
{
public:
Circle(int x, int y, int r, int color);
int getColor() const;
void setColor(int color);
bool contains(const Point &p) const;
void print() const;
private:
const Point center;
int radius, color;
};
class Collection
{
public:
Collection(int radius, int width, int height, int color);
~Collection();
Circle& getCircleAt(const Point &p);
void print() const;
private:
int count;
Circle **circles;
};
Circle& Collection::getCircleAt(const Point &p)
{
for (int i = 0; i < count; i++)
if (circles[i]->contains(p))
return *(circles)[i];
}
機能は、上記の円をreturnes: はたとえば、以下のクラスを見て、機能を持っていることができます。 関数getCircletでは、記号&はなぜ必要ですか?なぜ私はそれを省略できないのですか?
シンボル '&'は、多くの異なるプログラミング言語で多くの異なることを意味します。 [良い質問をする方法を読む](http://stackoverflow.com/help/how-to-ask)に時間を割いて、[最小限の、完全で検証可能な例](http: //stackoverflow.com/help/mcve)。 –
あなたはまだ疑問が非常に不明です。 "タイプクラス"はどういう意味ですか?あなたは型クラスを返すことによって何を意味しますか? '&'シンボルがC++で意味することが分かっていますか?あなたの問題の文脈ではどういう意味ですか?それはビット単位のAND演算子ですか?何かへの言及?アドレス演算子? –
私は自分の投稿を編集しました。ごめんなさい。 –