问题描述
对于c ++来说,我是一个新手,如果我包括定义函数的头文件,我应该能够从main调用函数吗?我曾尝试在函数之前添加static或public,但似乎没有任何变化。
//这是我的主要
#include "pch.h"
#include "myfile1.h"
#include <iostream>
using namespace std;
int main(void){
function1();
function2();
}
//我的myfile1标头
#ifndef myfile1_h
#define myfile1_h
#include <iostream>
using namespace std;
class myClass{
void function1();
void function2();
};
#endif
//我的myfile1.ccp
#include "myfile1.h"
#include <iostream>
using namespace std;
class myClass{
void function1() {
}
void function2() {
}
}
解决方法
您的函数位于myfile1的myClass中。您必须从此类创建对象,并且可以在此类中的位置使用函数。我的英语能力不好,但您必须这样做:
int main(void){
myClass myClassObject;
myClassObject.function1();
myClassObject.function2();
}
如果您不想从此类创建对象,则可以这样做:
myfile1.h:
#ifndef myfile1_h
#define myfile1_h
#include <iostream>
using namespace std;
void function1();
void function2();
#endif
myfile1.cpp:
#include "myfile1.h"
void function1(){
cout<<"function1"<<endl;
}
void function2(){
cout<<"function2"<<endl;
}
和主要:
#include "myfile1.cpp"
int main(){
function1();
function2();
return 0;
}
如果要在类中使用此功能,则可以在很好的情况下使用: myfile1.h
#ifndef myfile1_h
#define myfile1_h
#include <iostream>
using namespace std;
class myClass{
public: // If you want access these functions,you must use public tag.
// If you dont use any tag,it will be private,because default tag is private.
void function1();
void function2();
};
#endif
myfile1.cpp
#include "myfile1.h"
void myClass::function1(){
cout<<"function1";
}
void myClass::function2(){
cout<<"function2";
}
主要:
#include "myfile1.h"
int main(){
myClass myClassObject;
myClassObject.function1();
myClassObject.function2();
return 0;
}
您的编译器或编辑器是什么?如果从终端编译该代码,则必须像这样编译它:
g++ main.cpp myfile1.cpp
我的英语水平不好。但是我试图解释。