【发布时间】:2020-07-17 03:56:51
【问题描述】:
// file1.h
#pragma once
void public1();
// file1.cpp
#include "file1.h"
void privateFunc() {}
void public1() {}
// file2.h
#pragma once
void public2();
// file2.cpp
#include "file2.h"
void privateFunc() {}
void public2() {}
// main.cpp
#include <iostream>
#include "file1.h"
#include "file2.h"
int main()
{
std::cout << "Hello World!\n";
}
所以我在2个实现文件中有2个同名同参数的函数,但是实现方式不同。两者都不包含在它们的头文件中,所以我假设它们的编译器可以区分它们。我认为这是问题所在。
我怎样才能使函数privateFunc() 私有到实现文件而不将它放在一个类中?也就是说,当另一个文件包含“file1.h”或“file2.h”时,它应该不知道privateFunc()存在。
【问题讨论】:
标签: c++ compiler-errors header linker