引数として渡されるベクトルとクラス名を理解しようとしているので、この小さなプログラムがあります。プログラムは次のとおりです。
#include<iostream>
#include<vector>
using namespace std;
class objectclass{
public:
void vec_try(){
cout<<"print out something";
}
};
class another{
public:
void run();
vector<objectclass *>ports;
void add_obj(objectclass *p){
ports.push_back(p);
}
};
void another::run(){
//int j=0;
ports[j]->vec_try();
}
int main(){
another a;
a.run();
system("pause");
return 0;
}
ベクトルでクラス名をオブジェクトとして渡してから、push_backを使用してそのベクトルに要素を挿入するのは問題ないという考えがありますが、関数add_obj(objectclass * p)で、の定義を変更したくない場合は、どのように値を渡すのですか?働き。私はこのような方法を知っています:
objectclass *p;
p= new objectclass[10];
しかし、私の関数はすでに定義されており、ports [i]を使用して関数vec_try()を呼び出したいので、値を渡す方法と、ports[i]でどのように機能するかがわかりません。私は基本的にこれについていくつかの説明が必要です。