发布网友 发布时间:2022-04-21 05:35
共4个回答
热心网友 时间:2023-11-05 23:34
你只有Vector类的声明,没有实现阿。
-----
g++ -o exo3 fonction_exo3.o exo3.o
你需要把实现链接起来:
g++ Vector.cpp
g++ -o exo3 fonction_exo3.o exo3.o Vector.o追问
Vector.h是我的头文件,里面有定义一个Vector类。
fonction_exo3.cxx是我所有类外函数的定义。
exo3.cxx是我的主程序,里面有定义对象,并且调用对象的成员函数。(应该就是类的实现)
还有一个makefile是这样的
然后我的主程序是这样的:
热心网友 时间:2023-11-05 23:35
Vector 是C++标准程序库中的一个类,如果你只需要使用自己定义的Vector类,最好用#include "vector.h",而不要用#include <vector>,否则会引用到标准程序库中的Vector,而不是你自定义的类,最好是换个头类名,不要和标准库类同名,挺麻烦的。追问我可能还没搞懂Vector这个类,意思是这样加了#include 在头文件中,我们就不需要再在头文件中声明一个vector类了吗,就可以直接在main.cxx主文件中直接定义一个vector对象,所有的类函数类似size()也都可以直接使用了?
那头文件中加入了#include 后,还需要做什么呢?因为头文件中不就是放类的声明的吗?
追答是的,Vectort类是一个模板类,你如果在main.cxx中添加了#include 文,就可以直接在main.cxx主文件中直接定义一个vector对象,所有的类函数也可以直接用,不需要再在自己的头文件里重新定义一个Vector类,除非你想自己写一个Vector,如果这样的话,你就要用和标准库不一样的命名空间区分开, namespace yourstd{.……}
热心网友 时间:2023-11-05 23:35
没看到函数申明啊
热心网友 时间:2023-11-05 23:36
Vector只有头文件吗??其实现呢?Vector.cpp之类的文件怎么没有见到啊??