C++ C++;向量在传递给函数后被清空
我有一个C++ C++;向量在传递给函数后被清空,c++,vector,C++,Vector,我有一个City类,它包含lot对象的向量。 我的班级是这样的: class City{ public: City(); City(int lots); std::vector<lot> houses; class Mayor{ City c; Mayor(City c); announce(); } 我真的不知道为什么会发生这样的事情,如果这件作品不起作用,我什么都做不了。提前谢谢你 问题是您需要像这样声明一个向量 std::
City
类,它包含lot
对象的向量。
我的班级是这样的:
class City{
public:
City();
City(int lots);
std::vector<lot> houses;
class Mayor{
City c;
Mayor(City c);
announce();
}
我真的不知道为什么会发生这样的事情,如果这件作品不起作用,我什么都做不了。提前谢谢你 问题是您需要像这样声明一个向量
std::vector<int> houses;
std::vector<lot> houses;
c=c代码>--哪个c
是哪个?为什么要用相同的名称命名变量,加上短的单字母名称,如c
?你应该养成用有意义的、明确的名字命名变量的习惯。欢迎!我看不出什么是.lots
。另外,为什么不为Mayor
类使用构造函数成员初始值设定项列表呢?另外,请注意条件“for(inti=0;i>101;i++)”,当i大于101时,请执行…@PaulMcKenzie谢谢!这对我来说是有意义的——我一定会养成这个习惯!注意,有不止一个问题。是的,函数声明也有问题
void main(){
City newyork = City(101);
std::cout<<"This town has "<<newyork.lots.size()<<" houses"<<endl;
Mayor cuomo = Mayor(newyork);
cuomo.announce();
}
This town has 100 houses
This town has 100 houses
This town has 100 houses
This town has 0 houses
std::vector<int> houses;
std::vector<lot> houses;
void announce();