小编igo*_*gor的帖子

函数原型vs cpp包含头

我有功能做一些工作.

void doSomething(int n);
Run Code Online (Sandbox Code Playgroud)

A.cpp

#include "A.h"

void doSomething(int n) {
    /* something */
}   
Run Code Online (Sandbox Code Playgroud)

如果我想在另一个源文件中使用此函数,最佳选择是什么:

1)包括啊

B.cpp

#include "A.h"

void anotherTask() {
    // ...
    doSomething(5);
    // ...
}
Run Code Online (Sandbox Code Playgroud)

2)或使用前向声明(函数原型):

B.cpp

void doSomething(int);

void anotherTask() {
    // ...
    doSomething(5);
    // ...
}
Run Code Online (Sandbox Code Playgroud)

关于类的使用前向声明有很多提示.那么,功能前向声明的最佳实践是什么?

UPD

好的,这是一个太简单的例子.

如果标题啊有一些垃圾怎么办(相对于B.cpp,它对驱动程序级别一无所知):

#include "specific_driver_header.h" /* some lowlevel stuff that B.cpp couldn't know */

#define SPECIFIC_DRIVER_DEFINES 0xF0  /* useless define for B.cpp that uses global namespace */

void doSomething(int n);   /* only significant function for …
Run Code Online (Sandbox Code Playgroud)

c++ forward-declaration function-prototypes

4
推荐指数
2
解决办法
8634
查看次数