c++ 类A中含有一个string类型的私有数据成员 需要通过构造函数将它初始化 类B中含有私有数

c++ 类A中含有一个string类型的私有数据成员 需要通过构造函数将它初始化 类B中含有私有数据成员类A的对象数组 大小未知需要用户输入 数组中每一个对象中的数据成员都要被初始化为一个string数组的每一个元素的值(下标一一对应) 请问该如何实现

// C++11
#include <iostream>
#include <vector>
#include <string>
using namespace std;

class A{
string s;
public:
A(string t): s(t){}
void display(){cout << s << endl;}
};

class B{
vector<A> vA;
public:
B(const vector<string> &vs){
for each(string s in vs)
vA.push_back(A(s));
}
void display(){
for each(A a in vA)
a.display();
}
};

int main(){
string ss[] = {"hello", "World"};
vector<string> vs(ss, ss+2);

B b(vs);
b.display();
}

追问

能说下for each怎么用么

追答for each (类型 变量名 in 表达式) {
   语句
}

for( 类型 变量名 : 表达式) {
    语句
}

它们用来遍历数组之类的容器。

温馨提示:内容为网友见解,仅供参考
无其他回答

c++ 类A中含有一个string类型的私有数据成员 需要通过构造函数将它初 ...
\/\/ C++11#include <iostream>#include <vector>#include <string>using namespace std;class A{string s;public:A(string t): s(t){}void display(){cout << s << endl;}};class B{vector<A> vA;public:B(const vector<string> &vs){for each(string s in vs)vA.push_back(A(s)...

C++,const修饰类成员变量的初始化为什么只能用构造函数的初始化...
这里的【只能用构造函数的初始化列表】是说不能用构造函数初始化,你完全可以像你这样在类定义的时候直接赋值 但是这样意义不大,每个这个类的实例都有一个 const double a=100.1

C++里如果类中有字符串数组为成员变量应该怎么初始化
iLen = sizeof(abc);} memcpy(abc, a, iLen);} }

c++怎么在构造函数中把一个string类型初始
直接为string类型的变量赋值就能初始化或改变它的值。如:class init { public:init(){ s="你好,C++!";} init(string t){ s=t;} string s;};string str="中国!";init o,o2(str);

c++中引用类型数据成员为什么不能在构造函数中赋值,而只能在成员初始化...
那么ci和ri如果不在初始化列表里初始化,是不能执行完初始化操作的。也就是说,初始化const或者引用类型数据成员的唯一机会就是在构造函数初始化列表中。所以上述构造函数可以写为 A::A(int ii) : ci(ii), ri(ii) {i = ii;} 补充一点:内置类型的成员不进行隐式初始化,所以上述成员i不...

c++,类成员,string类型数组的初始化问题
med[10]={"x","x","x","x","x","x","x","x","x","x"};这样的赋值只有在定义数组的时候同时初始化才可以 比如 string med[10]={"x","x","x","x","x","x","x","x","x","x"};对于类成员,早被定义了,所以这样赋值是非法的 不过 用 for (int i=0;i<10;i+...

C++类中的类成员变量怎么调用带参数的构造函数来初始化?
要调用带参的构造函数,必须这样做:include "stdafx.h"class A { public:A(){ax = 0;};A(int a){ax = a;};int ax;};class B { public:\/***\/ B(int b) : bx(b) \/\/这样调用 { } B() : bx(0) \/\/这样也行 { } \/***\/ void print(){ printf("%d", bx.ax)...

C++string类实例化和初始化
使用std::string::assign成员函数:通过assign成员函数来初始化或修改std::string对象。使用std::array或std::vector初始化:可以使用容器如std::array或std::vector中的字符来初始化std::string对象。使用std::string::copy成员函数:使用另一个字符串的内容来初始化std::string对象。使用std::string::...

C++中, 类的私有数据成员在定义的时候不能进行初始化吗?
是的,C++中类的数据成员不管是不是私有的,都不能进行初始化。因为类就相当于一个数据的模板,是一种自定义组合的新数据类型,而不是一个变量。当程序声明一个类的时候,事实上并没有为程序申请存储空间,只有用这个类定义一个类对象的时候,才申请空间。连空间都没有,当然不能像定义变量一样的...

C++中类成员初始化方式
回顾一下:C++ 类定义需要使用关键字class来定义类名称,并将类的主体包含在花括号中,主体内包含类的成员变量和成员函数。类定义实质上是数据类型的蓝图。初始化类成员有三种方式:初始化列表、构造函数初始化、声明时初始化(C++11后支持)。初始化列表以冒号开始,后面列出需要赋值的成员变量及值。使用...

相似回答