vectorをクラスで使いたいです。
自分で一から作成してみたものと、サイトを参考にしたものがあるのですがうまく実行できません。
ご教示お願いします。
参考サイトhttp://tercel-tech.hatenablog.com/entry/2012/11/03/003302
C++
1#include<stdio.h> 2#include<vector> 3#include<iostream> 4using namespace std; 5 6class A{ 7public: 8 // デフォルトコンストラクタ 9 A() { 10 mX = new int(); 11 } 12 13 // コピーコンストラクタ 14 explicit A(const A &a) { 15 mX = new int(*a.mX); 16 } 17 18 // デストラクタ 19 virtual ~A() { 20 delete mX; 21 } 22 23 // 代入演算子のオーバーロード 24 A &operator=(const A &a) { 25 if (this != &a) { 26 *mX = *a.mX; 27 } 28 return *this; 29 } 30 31 int *mX; 32}; 33vector< A* > gA; 34 35void add() { 36 A a; 37 gA.push_back(&a); 38} 39int main() { 40 41 add(); 42 *(gA[0]->mX) = 6; 43 44 cout << gA[0]->mX << endl; 45 46 return 0; 47}
以下、0からの自作
C++
1#include<stdio.h> 2#include<vector> 3#include<iostream> 4using namespace std; 5 6class A{ 7private: 8 vector<int> x; 9public: 10 A(); 11 A(int& val) { x.push_back(val); } 12 13 void X(int& a) { rerturn x[a]; } 14}; 15int main() { 16 int b = 1432; 17 A a(b); 18 19 int c = 0; 20 cout << a.X(c); 21 return 0; 22}
std::vectorをそのまま使わないのはどうしてでしょうか?
こんにちは、回答ありがとうございまあす。 vectorで値の操作をしてみたいと思ったのですが全く表示などができず困っている次第です。
「vectorをクラスで使う」の意図が不明瞭ですが、引用されているコードと、あなた自身が書いたコードは同じ目的を持った処理なのでしょうか?「vector<A>」と「Aがvector<int>をメンバとして持つ」は全く意味が異なります。一度、C++入門書などで学習されることをお勧めします。
こんにちは、回答ありがとうございます。vector<A>のコードはほかのサイトのものなので全然わからないです。参考書、考慮します。
回答1件
あなたの回答
tips
プレビュー