C ++构造函数Initilizer

时间:2018-01-21 02:56:21

标签: c++ class initializer

我正在尝试使用构造函数初始化程序的名称和时间,但视觉工作室给我错误,我没有看到任何问题,它似乎很好,我试图看到问题,我尝试其他的东西作为好吧,请帮助。提前谢谢你。

任何帮助真的很感激,我添加了所有头文件和Entry类的实现,我知道它似乎,我添加所以你可以看到它。

// Entry.h
#pragma once
#include <iostream>
#include <string>
#include "RelationType.h"

using namespace std;

class Name 
{
    public:
    Name();

    Name(string firstName, string middleName, string lastName);

    string GetFristName() const;

    string GetLastName() const;

    string GetMiddleName() const;

    char GetMiddleInitial() const;

    RelationType ComparedTo(Name otherName) const;

    private:
    string first;
    string last;
    string middle;
};

//Entry.cpp
#include "Entry.h"
#include<iostream>
#include <string>

using namespace std;

Entry::Entry() {}

Entry::Entry(string firstName, string middleName, string lastName,
        int initHours, int initMinutes, int initSeconds)  
        : name{ (firstName, middleName, lastName) ,      //name is where its mad at
          time(initHours, initMinutes, initSeconds) } {}

string Entry::GetNameStr () const
{
     return (name.GetFirstName() + ' ' + name.GetLastName());
}

string Entry::GetTimeStr () const
{
     return (name.FirstName() + ' ' + name.LastName());
}


// Name.h
#pragma once
#include <iostream>
#include <string>
#include "RelationType.h"

using namespace std;

class Name
{
    public:
    Name();

    Name(string firstName, string middleName, string lastName);

    string GetFristName() const;

    string GetLastName() const;

    string GetMiddleName() const;

    char GetMiddleInitial() const;

    RelationType ComparedTo(Name otherName) const;

    private:
    string first;
    string last;
    string middle;
};

// RealtionType.h

#pragma once
#ifndef RELATION
#define RELATION

enum RelationType { BEFORE, SAME, AFTER };

#endif

// TimeOfDay.h
#pragma once

class TimeOfDay
{

    public:

    //Intentionally missed const, see what happened without const
    TimeOfDay();                                 // zero timepfday object

    TimeOfDay(int hours, int minutes, int seconds); //takes 3 parameters

    TimeOfDay Increment() const;                //increment by 1 sec

    void Write() const;                         //write the timeofday obj to print

    bool Equal(TimeOfDay otherTime) const;     //true if timeofday obj equals othertime

    bool LessThan(TimeOfDay otherTime) const;  //const, true if the timeofday obj is
                                           //before itherTime
    private:

    int hours;
    int minutes;
    int seconds;
};

1 个答案:

答案 0 :(得分:1)

您的Entry类构造函数代码应如下所示

Entry::Entry(string firstName, string middleName, string lastName,
            int initHours, int initMinutes, int initSeconds)  
            : name(firstName, middleName, lastName)
            , time(initHours, initMinutes, initSeconds) {}