创建类对象时出错

时间:2016-01-20 03:35:39

标签: c++ class object

我在创建一个简单的类对象时遇到了问题。我创建了一个小程序来模拟问题。我有一个班"人"数据成员string namestring eye_colorint 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();
}

1 个答案:

答案 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;
}