首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用其他头文件函数的头文件

使用其他头文件函数的头文件
EN

Stack Overflow用户
提问于 2019-10-12 12:27:45
回答 1查看 27关注 0票数 0

头文件是否能够从其他头文件调用函数。如果是这样,您如何做到这一点。例如:

代码语言:javascript
复制
void IntStack::push(int n)
{
    IntNode *newNode = new IntNode(n);
    newNode->next = top;
    top = newNode;
    return;
}

我是否可以创建另一个头文件并使用此推送功能?

EN

回答 1

Stack Overflow用户

发布于 2019-10-12 12:41:43

你可以做到这一点(但是你可能不想这样做,至少对于你链接的例子来说不是这样的--见下文)。

首先,下面是你如何做你所要求的事情:

代码语言:javascript
复制
// a.hpp
#pragma once // or include guards if you can't use pragma once
class IntStack {
    ...
    void push(int n);
    ...

// b.hpp
#pragma once // or include guards if you can't use pragma once
#include "a.hpp"
void foo() { IntStack i; i.push(0); }

但是,您可能不想这样做。在其他标头中包含标头会增加编译时间,而且通常不是必需的。您要做的是在头文件中包含类、类型和函数的声明,然后在cpp文件中包含各种定义。

对于您的示例:

代码语言:javascript
复制
// a.hpp
#pragma once // or include guards if you can't use pragma once
class IntStack {
    ...
    void push(int n);
    ...

// a.cpp
#include "a.hpp"

void IntStack::push(int n) {
    IntNode *newNode = new IntNode(n);
    newNode->next = top;
    top = newNode;
    return;
}

// b.hpp
#pragma once // or include guards if you can't use pragma once
void foo();

// b.cpp
void foo() {
    IntStack i;
    i.push(0);
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58350856

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档