gpt4 book ai didi

c++ - 从main调用类(单独的cpp文件)中定义的函数时的“identifier is undefined”

转载 作者:行者123 更新时间:2023-12-02 10:26:48 28 4
gpt4 key购买 nike

我对c++还是很陌生,如果我包括定义函数的头文件,我应该能够从main调用函数吗?我试图在函数之前添加static或public,但似乎没有任何变化。
//这是我的主

#include "pch.h"
#include "myfile1.h"
#include <iostream>

using namespace std;

int main(void){
function1();
function2();
}
//我的myfile1 header
#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我的英语水平不好。但是我试图解释。

关于c++ - 从main调用类(单独的cpp文件)中定义的函数时的“identifier is undefined”,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64094250/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com