为什么我会收到关于创建基础课程的警告?

时间:2017-04-28 08:09:26

标签: c++

我创建了这个,但我得到了链接错误,但我不知道为什么......

SysInfo.h

#include <iostream>

class SysInfo 
{

  public:
    SysInfo();
    ~SysInfo();

  private:

};

SysInfo.cpp

#include "SysInfo.h"

using namespace std;

SysInfo::SysInfo()
{
  cout << "Object is being created" << endl;
} 

SysInfo::~SysInfo()
{
  cout << "Object is being deleted" << endl;
}

主要

#include <tchar.h>
#include "Sysinfo.h" 

using namespace std;

int _tmain(int argc, _TCHAR* argv[])
{
    SysInfo inf;
    getchar();

    return 0;
}

消息

warning C4930: 'SysInfo inf(void)': prototyped function not called (was a variable definition intended?)

问题解决了。您看到的代码是更正后的代码。我改变了#include <SysInfo.h>  到#include "SysInfo.h"并关闭了visual studio 2012中的预编译设置。这样就很好地给出了错误。

3 个答案:

答案 0 :(得分:2)

SysInfo inf();是函数inf的声明,返回SysInfo类。

应为SysInfo inf;

#include <SysInfo.h>也可能引起关注。有关其他信息,请参阅this

答案 1 :(得分:1)

SysInfo inf();是一个函数声明!一个名为inf的方法,不带任何内容并返回SysInfo

执行此操作以声明SysInfo的对象:SysInfo inf;

答案 2 :(得分:0)

因为你的构造函数没有任何参数,所以你应该替换:

int main()
{
    SysInfo inf;
}

with bellow:

int main()
{
    SysInfo inf();
}

请尝试使用不SysInfo inf的{​​{1}}。