c++中头文件声明多个类,这些类的成员函数的实现为什么不能放在同一个源文件里?不要随便ctrl+c过来

我在一个头文件里声明了三个类,把这三个类成员函数的实现放在同一个源文件中,为什么编译错误,但当我把这些函数的实现全部放在头文件中时就没有错误了?是不是一个类的声明与实现必须单独放在一个源文件里?

一个类的声明与实现不需要单独放在一个源文件里,你之所以出错,很有可能是文件建立错了,按你的想法,第一步:建立头文件,文件类型为.h,在头文件里声明这三个类,第二步,建立一个CPP文件,将类的定义写进这个CPP文件中,第三步,再建立一个CPP文件,写上main()函数,此时你的注意,你的预处理头文件,因包含“第二个文件.CPP”.在运行就行了。
温馨提示:内容为网友见解,仅供参考
第1个回答  2011-11-11
可以在一个头文件声明,这是一定可以的、。。。。
第2个回答  2021-06-01
类模板好像不行
第3个回答  2014-06-03
大神,我一个.h文件里面,放了好多类
然后,在一个.cpp文件里面,放了好多类的实现。
请问为什么会报错啊?

c++中头文件声明多个类,这些类的成员函数的实现为什么不能放在同一...
一个类的声明与实现不需要单独放在一个源文件里,你之所以出错,很有可能是文件建立错了,按你的想法,第一步:建立头文件,文件类型为.h,在头文件里声明这三个类,第二步,建立一个CPP文件,将类的定义写进这个CPP文件中,第三步,再建立一个CPP文件,写上main()函数,此时你的注意,你的预处...

C++中对自定义函数的声明,放main内还是外,在含类的程序中,貌似只能在...
一般放在函数外,调用之前。放在哪跟有类没类没有直接联系。实践中一般将函数声明、类的定义放在头文件中。而定义放在单独的源文件(.cpp)。如果有哪个源文件中用到了头文件中声明的函数或类,只需#include “***.h”将头文件包含进来。

c++中一个程序含有多个类该如何实现
你可以自己定义多个class,不论是在单个文件中还是在多个文件中(使用include包含和using引用)都可以,只要能通过名称识别就行,包括多个类是否有继承或友元等关系完全由你自己的需要来决定 只是要注意修饰符(如private、public等)限定的权限,不要越权限访问类或对象中的成员 为了便于管理,多个类一般使用命...

C++在头文件中定义了一个类。声明了成员函数。在另一个cpp文件中定义了...
在 main 中使用 这个类的时候并不需要 使用 class.cpp 文件里的定义,而实际是在使用 class.h 里的声明。不信的话你在 class.cpp 里面加一个新类 teacher 的定义,但在 class.h 里不声明,然后你看看在main.cpp 里能不能用 teacher 类。

c++为啥类的成员函数可以这样在类外定义
不是可以在类外定义,而是最好在类外定义。C++有头文件和源文件,头文件放声明,源文件放定义。如果在头文件中定义,当项目比较大而复杂的时候也即头文件相互包含的时候,编译时会报重复定义的错误。

C++重定义默认参数的问题
因此一般将声明部分放在头文件中,类的成员函数的具体实现放在源代码文件中。但有时为了省事,将头文件中的类的成员函数的声明直接复制到代码文件中,一般情况下是不会出现问题的。但当成员函数的声明中为形参指定了实参时,这样直接复制过去就会造成:error C2575: 重定义默认参数。初学C++, 关于类的...

c++ : 成员函数的实现部分(写在类外),究竟属于类的内部还是外部?
不管是类外实现还是类内实现,都是在类的作用域内部,比如类外实现 class a { void show();} void a::show(){ ...}虽然是在类外实现但是必须要用作用域解析运算符,编译器才知道这是a类的作用域的函数,否则就报错!所以咯,不管是哪里实现都保证是在这个作用域内部,也就是说本来就是属于类...

C++中源文件与头文件有哪些不同点与联系?
1. cpp文件和.h文件有各自的分工,一般来说,h文件中是类的定义和类成员函数的声明,以及全局变量定义等;cpp文件是对应h文件中成员函数的代码实现。一般cpp文件代码较多。\\x0d\\x0a 这样做的好处:h文件只声明类成员函数,简单易懂,当其他文件要调用该类的接口时,只需包含该h文件,并在编译...

以下c++ 类的声明中怎么有多个public,一个public不行吗
可以,结果是一样的,就是Public下的都是公有成员,若是想吧某一个成员设为私有的,就必须在它前面加上Private标识

c++怎么使用其他文件的类?
c++ 源代码通常是这样组织的,在头文件(*.h)里声明类定义,在*.cpp里定义成员函数的实现。这样可以在任何一个 *.cpp 里引用任何其他类定义而不会发生重定义问题。确实有一种情况会 #include "template.cpp". 定义模板的时候,同样在 template.h 定义模板类,在 template.cpp 里定义其实现。但是...

相似回答