为什么C++中的.h和.cpp无法关联上?

//time1.h如下
#ifdef TIME1_H
#define TIME1_H

class Time
{
public:
Time();
void setTime(int,int,int);
void printUniversal();
void printStandartd();

private:
int hour;
int minute;
int second;
};
#endif
//time1.cpp如下
#include <iostream>
using namespace std;
#include <iomanip>
using std::setfill;
using std::setw;

#include "time1.h"

Time::Time()
{
hour = second = minute = 0;
}

void Time::setTime(int h ,int m ,int s )
{
hour = ( h >= 0 && h < 24 ) ? h : 0;
minute = (m >= 0 && < 60 ) ? m : 0;
second = ( s >= 0 && < 60 ) ? s : 0;
}

void Time::printStandartd()
{
cout << setfill( '0') << setw(2) << hour << ":"
<< setw(2) << minute << ":"
<< setw(2) << second;
}
//main函数如下
#include <iostream>
using namespace std;

#include "time1.h"

int main()
{
Time t;
t.setTime(22,22,14);
t.printUniversal();
return 0;
}

编译的时候报错:
error C2653: 'Time' : is not a class or namespace name
意思大概是说Time类没有定义,为什么?已经定义了,而且已经关联了啊

头文件第一句写错了#ifdef TIME1_H
照这个逻辑,只有当TIME1_H宏定义了 才会编译头文件的内容。但TIME1_H这个宏一开始是未定义的,因此造成头文件没有被编译。
温馨提示:内容为网友见解,仅供参考
第1个回答  2014-01-16
第二行:
#ifdef TIME1_H
应该改成
#ifndef TIME1_H
然后,记得在适当的地方#include"time.h"
第2个回答  2014-01-15
#ifdef TIME1_H or #ifndef TIME1_H ?

为什么C++中的.h和.cpp无法关联上?
照这个逻辑,只有当TIME1_H宏定义了 才会编译头文件的内容。但TIME1_H这个宏一开始是未定义的,因此造成头文件没有被编译。

1 .cpp是c++的文件,但包含了<...h>,网上说.h是c++专用 2 c和c++的...
1、.h文件是c和c++通用的,只是c的头文件里不能牵涉到c++的代码(必须在c的语法范围内)。2、头文件只要语法符合纯c的语法,一般就可以在c和c++中通用了,具体视编译器而定(不过一般的都支持)。3、#include<iostream.h>是c的调用约定。include<iostream>是stl的调用约定。一个有“.h”,一个...

C++多个.h和.cpp文件的连接?
1,文件 .CPP里包含的头文件要正确.改包含的要包含.2,main函数里要包含你编写全部.H头文件.3,如没问题参照以下步骤.举个例子吧:假设你已经编写好了以下3个文件(或者更多):SSList.H --- 头文件 SSList.cpp --- (函数)实现文件 (后缀为.c也可以)SSList_main.cpp --- 主(调用)文件 (后缀...

Visual C++:如何关联.h和.cpp文件
不会有这种情况,除非是你这个文件被误删了,但类视图里没有及时更新,或者就是你的vc编译器有问题。那你现在先把原来的删除了,在重命名新文件添加进去就好了。

C++问题,如何让.hpp和.cpp连接起来??
使用工程-增加到工程-文件把头文件导入,.h文件和.cpp文件的名字一定要定义,然后在.cpp里包括.h文件,在使用的时候包含.h文件就可以了

C++中.h和.cpp怎么关联;
在NameFunctions.cpp中输入:include "NameFunction.h"

C语言中.cpp与.h是如何连接的?
.h 和 .cpp 不是 连接\/链接 关系,而是包含关系。也就是说,在预编译期间,编译器把 .h 的文字内容,原原本本 插入.cpp 文件中,插入位置就在 #include 这句 宏命令处。文字内容 插入完毕,再编译 .cpp 系统的 .h 放在 系统文件夹们 里。系统文件夹路径 定义在环境变量 INCLUDE 里。自定义 ...

C++中 我的类文件(后面跟.h) 放在工程的文件夹里面 可是为什么就是调用...
放到工程的文件夹里面是没有用的,这样不代表该类会被工程所调用。你必须将该类的.h和.cpp文件加入到工程中才可以

为什么C++类的头文件中包含hpp文件时会报错呢
你的意思是 你的类 声明在 .h文件中。定义在.cpp文件中。这个.cpp文件肯定包含了前面的.h文件。然后这个.h中 包含了 某个 .hpp文件。于是编译的时候 相当于 .h包含了一次 .hpp。.cpp也包含了一次.hpp。如果.hpp文件中 你定义了全局变量或者全局函数。则会编译报错——重定义!!。这也是我 ...

C++头文件和CPP怎么联系起来?
可以直接把CPP源文件和头文件添加到工程,就可以实现关联;h文件放声明,cpp文件要么实现h中的函数,要么是用h中的函数。不管是实现还是用,都需要知道返回值类型参数类型等来检查正确性(除非是同时声明和实现),这时候include一下头文件,编译的时候就可以找到声明了。h和cpp的名字可以不一样,习惯上...

相似回答
大家正在搜