我在创建一个简单的类对象时遇到了问题。我创建了一个小程序来模拟问题。我有一个班"人"数据成员string name
,string eye_color
和int pets
。当我致电Person new_person("Bob", "Blue", 3)
时,我的调试器会将其显示为new_person
的值:
{name=""eye_color=""pets=-858993460}
我正在看以前的项目,我对此没有任何问题,而且没有发现任何东西......我缺少什么?
person.h
#include <iostream>
#include <string>
class Person
{
public:
Person(std::string name, std::string eye_color, int pets);
~Person();
std::string name;
std::string eye_color;
int pets;
};
person.cpp
#include "person.h"
Person::Person(std::string name, std::string eye_color, int pets)
{
this->name;
this->eye_color;
this->pets;
}
Person::~Person(){}
city.h
#include "person.h"
class City
{
public:
City();
~City();
void addPerson();
};
city.cpp
#include "city.h"
City::City(){}
City::~City(){}
void City::addPerson(){
Person new_person("Bob", "Blue", 3);
}
的main.cpp
#include "city.h"
int main(){
City myCity;
myCity.addPerson();
}
答案 0 :(得分:2)
看起来你实际上并没有在Person类中分配值,这就是为这些数据成员获取随机值的原因。
应该是:
Person::Person(std::string name, std::string eye_color, int pets)
{
this->name = name;
this->eye_color = eye_color;
this->pets = pets;
}