//test.h
#ifndef TEST_H_INCLUDED
#define TEST_H_INCLUDED
class A
{
public:
void fun1();
void fun2();
};
#endif // TEST_H_INCLUDED
//test.cpp
#include "test.h"
#include <iostream>
using namespace std;
void A::fun1()
{
cout<< "hello"<<endl;
}
//main.cpp
#include <iostream>
#include "test.h"
using namespace std;
int main(void)
{
A *a = new A;
a->fun1();
cout << "Hello world!" << endl;
return 0;
}
//error
D:\CPROJECTS\0003\main.cpp|9|undefined reference to `A::fun1()'|
C++ 类的声明和定义怎样放在两个文件里,通过编译呀?
总需要编译C文件,把h文件放在同一个目录下就可以了。#include的时候编译器就把头文件弄到C文件里面去了。
用VC++6.0编译C++程序,类的声明文件.h和类的实现文件.cpp是放在一个文 ...
用VC++6.0编译C++程序,类的声明文件.h和类的实现文件.cpp是放在一个文件中还是放在不同文件中,这个问题本身就有问题,什么放在同一个文件中,明明是两个文件。
C++两个头文件互相包含对方,编译无法通过怎么办
其次,如果是VC,在这两个头文件最开头加 pragma once也能达到同样效果。谢谢,望采纳。
c++中,如何将类的源文件放在头文件中,使其在另一个源文件中可以通过包含...
比如有个类ABC要在main.cpp内使用,创建两个文件 ABC.h,ABC.cpp 把类的声明都写在h里面,方法的实现写在cpp里面,然后在main.cpp内#include "ABC.h",然后编译,如果是工程就把ABC都加到工程里,如果不是就要手动链接了。头文件只是提供声明,#include了头文件是保证main.cpp知道了接口。而链接才...
C++中对自定义函数的声明,放main内还是外,在含类的程序中,貌似只能在...
一般放在函数外,调用之前。放在哪跟有类没类没有直接联系。实践中一般将函数声明、类的定义放在头文件中。而定义放在单独的源文件(.cpp)。如果有哪个源文件中用到了头文件中声明的函数或类,只需#include “***.h”将头文件包含进来。
c++ 结构体之间的调用, 现在我用 【两个文件】
最直接的做法 file2中如下操作:Struct A { } ; \/\/与file1中相同的定义 Struct B { ...;Struct A a;} 第二种做法参照 倒霉熊lujin 的
c中定义和声明有什么区别
c++中定义和声明的区别:变量的声明和定义:从编译原理上来说,声明是仅仅告诉编译器,有个某类型的变量会被使用,但是编译器并不会为它分配任何内存。而定义就是分配了内存。如果是指函数的声明和定义:声明一般在头文件里,使编译器明白这里有一个函数,让编译器知道这个函数的存在。定义一般在源文件...
c++中头文件声明多个类,这些类的成员函数的实现为什么不能放在同一...
一个类的声明与实现不需要单独放在一个源文件里,你之所以出错,很有可能是文件建立错了,按你的想法,第一步:建立头文件,文件类型为.h,在头文件里声明这三个类,第二步,建立一个CPP文件,将类的定义写进这个CPP文件中,第三步,再建立一个CPP文件,写上main()函数,此时你的注意,你的预...
C++在头文件中定义了一个类。声明了成员函数。在另一个cpp文件中定义了...
class.cpp(第一行 #include "class.h" )main.cpp (第一行 #include "class.h" )在 main 中使用 这个类的时候并不需要 使用 class.cpp 文件里的定义,而实际是在使用 class.h 里的声明。不信的话你在 class.cpp 里面加一个新类 teacher 的定义,但在 class.h 里不声明,然后你看看在...
C++怎么让两个头文件相互包含?
如果是模板类,那么类成员函数声明为内联的即可 例如 \/\/A.h #pragma once#include "B.h"template<typename T> class B; template<typename T> class A{public:A(B<T>* b=NULL):b_(b){};void SetPtr(B<T>* b){b_ = b;}void CallFuncFromB(){b_->PrintfB();}void PrintfA(){...