2016-11-09 9 views
0

私はクラスを持ち、オブジェクトを1つ作成すると、メンバ関数を呼び出すのが簡単です。これは次のようなものです:C++ - メンバ関数とオブジェクトの配列

class Foo 
{ 
    ... 
public: 
    void function(); 
} 

void Foo::function() 
{ 
    ... 
} 

int main() 
{ 
    Foo f1; 
    f1.function(); 
} 

しかし、私はオブジェクトの配列を作成するときにどのようにメンバー関数を呼び出す必要がありますか?

class Foo 
{ 
    ... 
public: 
    void function(); 
} 

void Foo::function() 
{ 
    ... 
} 

int main() 
{ 
    Foo *f1; 
    ??? 
} 
+2

配列はどこですか? 'f1'はポインタであり、配列ではありません。 – Barmar

+1

'f1-> function()'が単一のオブジェクトへのポインタであれば、 'f1 [index] .function()'はオブジェクトの配列へのポインタです。 – Barmar

+0

通常どおりのこととは何も変わりません。 Foo * f1 = new Foo [15]と言うだけです。そのメソッドを呼び出します。 – SenselessCoder

答えて

0

オブジェクト:

A a; 
a.foo() 

ポインター:

A *a; 
a->foo(); 

表/ "アレイ":

A a[10]; 
a[0].foo() 

ものは本当にもちろん、すべて無料のC++で利用できる基本です。

+0

ええ、ありがとう、それは私が意味するものです。ポインタの代わりにポインタ(A ** a)を持っているとどうなりますか? –

+0

@ Rqw9P18gDm、もう一度参照解除してください。基本に戻ることをお勧めします。これは良いC++の本でカバーされている材料です。例えば ​​'(* a) - > foo()'のように – StoryTeller

+0

です。しかし、状況によっては他の方法もあります。例えば'a [0] [0] .foo()'。より深く進む前に、本当にC++の呪いをする必要があります。 :) – woockashek

0

試みるこの

int main() 
{ 
    Foo arrayOfFoo[5]; 
    arrayOfFoo[0].function(); 
} 

これはアレイタイプフーの5つのオブジェクトを作成すると呼ばれるarrayOfFoo そしてそれは、配列内の配列インデックス0でオブジェクト上のメソッド関数()を行いますarrayOfFoo

0

まず、オブジェクトの配列を作成する必要があります。 Foo f1[100];の文をmainに書きます。

私は乱数100を選択しましたが、任意の値を選択できます。また、メンバー関数にアクセスするには、ドット演算子を使用する必要があります。例えば、

f1[1].function() 
関連する問題