对象初始化失败C ++

时间:2015-12-07 18:44:14

标签: c++ object initialization initializer-list

我一直试图调试以下代码失败, 我注意到唯一导致程序崩溃的事情是“movies1”总是得到值0x0(就像它从未初始化),并且“d1”正在使用默认构造函数初始化,而不是“TestDirector”构造函数中指定的构造函数。 所有其他变量(int,char,string)都得到正确的值。

我会感激任何帮助。 感谢。

# include "gtest.h"
# include "Movie.h"
# include "Director.h"

class TestDirector: public ::testing::Test{
    protected:
    vector<Movie*>* movies1;
    string name1;
    int id1, age1;
    char gender1;
    string description1;
    Director d1;

        void SetUp(){
            cout<<"Setting up"<<endl;
        }
        void TearDown(){
            cout<<"Tearing down"<<endl;

        }
    public:
        TestDirector():
            movies1(new vector<Movie*>(0)), 
            name1("Director1 name"),
            id1(1),
            age1(1),
            gender1('m'),
            description1("Director 1 job description"), 
            d1(name1, 
               id1 , 
               age1, 
               gender1, 
               movies1, 
               description1)
        {
        }
};

TEST_F(TestDirector, StringPrintMatch) {
    ostringstream output1, output2;
    d1.print(output1);
    output2 << name1;
    EXPECT_EQ(output1.str(),output2.str());
}

0 个答案:

没有答案