【新手向】c++如何把函数放到另一个文件里

废话不多说直接上源码

你的文件本来长这样

//>>>cat main.cpp
#include <iostream>
int sum(int a, int b){
    
    
    return a+b;
}

void swap(int &a, int &b){
    
    
    int t;
    t = a;
    a = b;
    b = t;
}

int main() {
    
    
    int a = 1;
    std::cout << "a = " << a << std::endl;
    int b = 2;
    std::cout << "b = " << b << std::endl;
    std::cout << "sum(a, b) = " << sum(a,b) << std::endl;
    swap(a, b);
    std::cout << "swap(a, b)" << std::endl;
    std::cout << "a = " << a << std::endl;
    return 0;
}

方法1

只需要在main()之前声明一下然后正常编译两个文件就好了

//>>>cat anotherFile.cpp
int sum(int a, int b){
    
    
    return a+b;
}

void swap(int &a, int &b){
    
    
    int t;
    t = a;
    a = b;
    b = t;
}
//>>>cat main.cpp
#include <iostream>
int sum(int a, int b);
void swap(int &a, int&b);

int main() {
    
    
    int a = 1;
    std::cout << "a = " << a << std::endl;
    int b = 2;
    std::cout << "b = " << b << std::endl;
    std::cout << "sum(a, b) = " << sum(a,b) << std::endl;
    swap(a, b);
    std::cout << "swap(a, b)" << std::endl;
    std::cout << "a = " << a << std::endl;
    return 0;
}
>>>g++ main.cpp anotherFile.cpp
>>>./a.out

方法2

在方法1的基础上只需用一个头文件代替函数的声明,其他照旧。
没错,头文件不一定要以.h结尾,它就是一个名字罢了。

//>>>cat main.cpp
#include <iostream>
#include "tools.kaiyan"

int main() {
    
    
	//...
	return 0;
}
//>>>cat tools.kaiyan
#pragma once //这个不能少

int sum(int a, int b);
void swap(int &a, int &b);

为什么我要写这个

因为我tm上课的时候,函数的定义和头文件和class和namespace是一节课直接一起讲的,老师又举了一个及其糟糕的例子,那里例子里函数名,命名空间,头文件的命名,以至于成员变量的名称都是一样的,这tm谁听得懂?

猜你喜欢

转载自blog.csdn.net/u013474815/article/details/107741630