VS为我的构造函数提供了另一种解决方案,但我想知道为什么我的方法无法正常工作

时间:2019-06-24 20:30:24

标签: c++ constructor

我的构造函数下面有一条绿线,上面写着“未找到函数定义”。

Visual Studio给了我一个解决方法,但是我想知道为什么我的方法不起作用。

#pragma once
#include "class_dayType.h"
#include <iostream>
#include <string>
using namespace std;

int main() {
    dayType day;
    string d;

    cout << "Enter day of week: ";
    cin >> d;

    day.set_day(d);
}

#include <iostream>
#include<string>
using namespace std;

class dayType {
public:
    string day;
    dayType();  //constructor with green line

    void set_day(string day_of_week) {
        string day = day_of_week;
    }
};

Visual Studio在另一个文件中创建了该文件,并且可以正常工作。这和我的构造函数有什么区别?

dayType::dayType()
{
}

错误:

  

在函数_main Day_of_Week中引用的LNK2019不可解析的外部符号“ public:__thiscall dayType :: dayType(void)”(?? 0dayType @@ QAE @ XZ)

     

LNK1120 1个未解决的外部因素Day_of_Week

1 个答案:

答案 0 :(得分:1)

dayType(); 

这不是定义,而只是声明。这表明以后会在代码中的某个位置出现构造函数(或任何函数)。

您需要

dayType() 
{
}

详细了解herehere