/*Header.h file*/
#include <iostream>
using namespace std;
int main(){
/*Menu*/
/*case1:
int x;
cout << "Input ammount:";
cin >> x
sugarcake(x)*/
/*case2:
something else
*/
}
/*sugarcake.cpp file*/
#include <iostream>
#include "Header.h"
using namespace std;
void sugarcake(int x) {
cout << (x * 0.75) << "st egg" << endl;
cout << (x * 0.75) << "dl sugar" << endl;
cout << (x * 0.5) << "tsk vanillasugar" << endl;
cout << (x * 0.5) << "tsk blabla" << endl;
cout << (x * 0.75) << "dl wheatflour" << endl;
cout << (x * 18.75) << "gram butter" << endl;
cout << (x * 0.25) << "dl water" << endl;
}
我如何完成这项工作或者我完全理解它是错误的? (昨天开始使用C ++,所以请善待,我还没有找到任何对我有用的明确答案)
TL DR:在Header.h中的sugarcake.cpp中调用函数sugarcake(int x)
答案 0 :(得分:3)
您不应该将代码放在头文件中,而是使用两个源(.cpp
)文件,并且让头文件只包含(在您的情况下)sugarcake
函数的声明。 / p>
因此头文件看起来应该像
// These first two line (and the last line of the file) is part of
// a header include guard (see https://en.wikipedia.org/wiki/Include_guard)
#ifndef HEADER_H
#define HEADER_H
void sugarcake(int x);
#endif // HEADER_H
sugarcake.cpp
文件:
#include <iostream>
#include "header.h" // Technically we don't need to include the header
// file here, but it's always a good idea to do
// anyway
void sugarcake(int x) {
...
}
最后是main.cpp
文件:
#include <iostream>
#include "header.h"
int main() {
int x;
std::cin >> x;
sugarcake(x);
}
如何构建这取决于您的环境,但如果您从命令行使用GCC,那么您确实喜欢这个
$ g++ -Wall -Wextra main.cpp sugarcake.cpp -o sugarcake
-Wall
和-Wextra
选项可以启用额外的警告,总是一个好主意。 -o
选项告诉g++
它创建的可执行程序的名称。这两个源文件是您刚刚创建的文件。
答案 1 :(得分:1)
我们使用头文件来描述将在每次发言的其他场合之后使用的函数。
所以我将展示如何在头文件中组织我的函数:
/* header.h
* include guards below, it is very import to use it to be sure you'r not
* including things twice.
*/
#ifndef HEADER_H
#define HEADER_H
// I write function prototypes in the header files.
int sum(int &a, int &b);
#endif // HEADER_H
函数的定义写在header.cpp
// header.cpp
#include "header.h"
int sum(int &a, int &b)
{
int total = a + b;
return total;
}
要在main.cpp
中使用该功能,您只需添加header.cpp
// main.cpp
#include <iostream>
#include "header.h"
int main(int argc, char *argv[])
{
int a = 5;
int b = 4;
int total = sum(a, b);
std::cout << "The total sum of the 4 and 5 numbers is: " << total << std::endl;
}
看看它是如何制作的?然后你可以编译cpp文件,它会工作!