我想連接兩個向量,但是當我嘗試在屏幕上寫入結果時,我得到的結果沒有int數,這是兩個。我想得到的結果:一二三四50 你能幫助我,如何解決它?謝謝連接兩個不同類型的向量丟失信息
#include <iostream>
#include <string>
#include <vector>
using namespace std;
template<typename T>
class One
{
protected:
T word;
T word2;
public:
One() {word = "0"; word2 = "0";}
One(T w, T w2) {word = w; word2 = w2;}
virtual const void Show() {cout << word << endl; cout << word2 << endl;}
};
template<typename T>
class Two : public One<T>
{
protected:
int number;
public:
Two() {number = 0;}
Two(T w, T w2, int n) : One(w,w2) {number = n;}
virtual const void Show() {cout << word << endl; cout << word2 << endl; cout << number << endl; }
};
int main()
{
vector<One<string>> x;
vector<Two<string>> x2;
One<string> css("one","two");
Two<string> csss("three","four",50);
x.push_back(css);
x2.push_back(csss);
x.insert(x.end(),x2.begin(),x2.end());
for (int i = 0; i < x.size(); i++)
{
x.at(i).Show();
}
cin.get();
cin.get();
return 0;
}
閱讀[object slicing](http://en.wikipedia.org/wiki/Object_slicing)。 – 2013-05-05 15:03:43
閱讀本文:[C++中的切片問題是什麼?](http://stackoverflow.com/questions/274626/what-is-the-slicing-problem-in-c) – jrok 2013-05-05 15:04:04