visual c++ 6.0_visual c++一个很小的问题?

原问题:visual c++一个很小的问题?
分类:编程开发 > 最后更新时间:【2017-04-06 01:04:45】
问题补充:

我有以下一个visual c++程序:

#include <iostream>#include <string>#include <functional> #include "vector"#include "list"#include "set"#include "algorithm"using namespace std;template <typename T>class person{ public: person() { } void operator()(T &t) { cout<<t<<endl; }};void main(){ int a=10; string b="I am a china people!"; person<int> p1; p1(a); person<string> p2; p2(b);}

输出结果是:

10

I am a china people!

这是我想要的输出结果,便我并不是那么满意!因为这两个输出变量分别在两个不同的变量输出,我想要的结果是这两个输出变量放在同一个变量 person中输出,即我的要求是同一个变量 person那个同时存放不同类型的变量,各位高手请说出有什么办法可以实现我的要求?

最佳答案

如你这样简单的要求,可以不用模板的(当然,这是最简单的一个例子)

class person
{

public:
person(int t1,string t2)
{
cout<< t1 <<endl<<t2<<endl;
}
};
int main()
{

int a=10;
string b="I am a china people!";
person p1(a,b);
}

追答:
你上面的程序都没有涉及存放,只是输出存放的话,class本身可以存放多种类型的
追问:
假如我想的是p1同时存放int a和string b 追答:
我上面的不就是p1同时输出了int a和string b若是要存放,你只要在类中定义内部的两个变量,在构造时将a,b存入(上面的p1就是一个变量)你既然都能用模板了,这个应该没有问题吧
追问:
假如数据是不断的变化,不管是数据的类型还是数量
  • 追答:
    那你可以用容器啊,如vector,map,list等但没有一个万能的容器的,语言只是适合实际编程需求,没有实际需求一般语言中不会有的
    最佳答案由网友  whoami1978  提供
  • 公告: 为响应国家净网行动,部分内容已经删除,感谢网友理解。
    5

    分享到:

    其他回答

    其它网友回答:
    你把 a 也转换成字符串。

    其它网友回答:
    然后和 b 合并成为一个长字符串。

    其它网友回答:
    这样就可以用一个 person 搞定。

    其它网友回答:
     


    追问:
    但我想要的结果是a也是int,不要改成字符串
    追答:
    两个不同数据类型,用简单变量不可能存放在一起。 一定要放在一起的话,你可以考虑一下用结构体变量来做。
      推荐