爱学习520 发表于 2020-8-9 15:44:23

请问这个为什么错?【不纠结这个问题了,跳过算了】

本帖最后由 爱学习520 于 2020-8-13 11:15 编辑

不知道为什么错了,大佬们看看,只有几行代码
在main里面引用了一个类,main():

#include <iostream>
#include "Text.cpp"
int main()
{
    Text t;
}


定义了一个类,函数在该类中仅声明,即函数实现和定义分开,定义代码。即Text.h:
class Text
{
        public :
                Text();
};



类中函数实现代码,即Text.cpp:
#include "Text.h"
using namespace std;



Text::Text()
{
        cout << "构造函数执行了" << endl;
}


错误如图,第一张。第二张是按照一楼修改后的宁外的错误截图。第三张图是8楼修改后的其他错误。如果大家是VS可以运行一下,看看是不是和我一样的错误,感谢大

家下面的解答,我都试了,还是一样错误,此时16:28

zltzlt 发表于 2020-8-9 15:46:15

在 Text.cpp 开头加入一句 #include <iostream>

永恒的蓝色梦想 发表于 2020-8-9 15:47:34

楼上正解

爱学习520 发表于 2020-8-9 15:54:05

zltzlt 发表于 2020-8-9 15:46
在 Text.cpp 开头加入一句 #include

我在帖子最上面截屏了 安照你修改的 出现异常

爱学习520 发表于 2020-8-9 15:57:16

永恒的蓝色梦想 发表于 2020-8-9 15:47
楼上正解

那个不对,截图在帖子最下面了

zltzlt 发表于 2020-8-9 15:58:44

你 Text.h 中冒号用成中文的了……应该这样:

class Text
{
      public :
                Text();
};

爱学习520 发表于 2020-8-9 16:00:02

zltzlt 发表于 2020-8-9 15:58
你 Text.h 中冒号用成中文的了……应该这样:

这个改了,还是一样的错误,和第一张一样

永恒的蓝色梦想 发表于 2020-8-9 16:00:57

爱学习520 发表于 2020-8-9 15:57
那个不对,截图在帖子最下面了

Text.cpp 改为:#include<iostream>
#include"Text.h"
using namespace std;

Text::Text(const Text&) {
    cout << "构造函数执行了" << endl;
}试试

爱学习520 发表于 2020-8-9 16:05:24

永恒的蓝色梦想 发表于 2020-8-9 16:00
Text.cpp 改为:试试

和第二张图一样,无法启动程序

爱学习520 发表于 2020-8-9 16:06:44

永恒的蓝色梦想 发表于 2020-8-9 16:00
Text.cpp 改为:试试

改了后程序无法启动了,错误还是和之前一样

永恒的蓝色梦想 发表于 2020-8-9 16:10:51

爱学习520 发表于 2020-8-9 16:05
和第二张图一样,无法启动程序

发图

爱学习520 发表于 2020-8-9 16:28:55

永恒的蓝色梦想 发表于 2020-8-9 16:10
发图

发了,更新在帖子上面了

永恒的蓝色梦想 发表于 2020-8-9 16:31:04

爱学习520 发表于 2020-8-9 16:28
发了,更新在帖子上面了

麻烦直接回复……我都不知道你发的是哪张

爱学习520 发表于 2020-8-9 16:32:25

永恒的蓝色梦想 发表于 2020-8-9 16:31
麻烦直接回复……我都不知道你发的是哪张

第三张

永恒的蓝色梦想 发表于 2020-8-9 16:36:06

爱学习520 发表于 2020-8-9 16:32
第三张

我也搞不懂了{:10_260:}干脆不要用类外定义了

405794672 发表于 2020-8-9 17:01:06

把#include"Text.cpp"改为“Text.h"先试一下。不行就把Text直接改了。把所有的除了text()函数的Text,也就是你的类名改掉。重复覆盖有什么意思

livcui 发表于 2020-8-9 19:59:32

本帖最后由 livcui 于 2020-8-9 20:12 编辑

爱学习520 发表于 2020-8-9 16:32
第三张
8楼的代码构造函数带了参...
创建 test 对象 t 时就会调用默认构造函数,
但问题出在这个参量多了的构造函数类里没有声明原型(报错正常)

所以 test.cpp 的确应该改为 test.h ,
如果还是不行,当我没说。。。
#include<iostream>
#include"Text.h"
using namespace std;

Text::Text() {
cout << "构造函数执行了" << endl;
}

还有哥你 main() 没返回值...

爱学习520 发表于 2020-8-10 08:03:53

livcui 发表于 2020-8-9 19:59
8楼的代码构造函数带了参...
创建 test 对象 t 时就会调用默认构造函数,
但问题出在这个参量多了的构 ...

没有用,,这些都早就试过

livcui 发表于 2020-8-10 08:54:41

爱学习520 发表于 2020-8-10 08:03
没有用,,这些都早就试过

就先别搞多文件吧,
全放到一个文件里,看你编译器到底出的什么错
#include <iostream>

class Text_
{
public:
    Text_();
};


int main()
{
    Text_ t;
}

Text_::Text_()
{
    std::cout << "构造函数执行了" << std::endl;
}

爱学习520 发表于 2020-8-10 08:59:55

livcui 发表于 2020-8-10 08:54
就先别搞多文件吧,
全放到一个文件里,看你编译器到底出的什么错

全放到一个没有问题
页: [1] 2
查看完整版本: 请问这个为什么错?【不纠结这个问题了,跳过算了】