hzxwonder 发表于 2020-4-24 17:58:03

c++p13联合问题

希望好心人帮我回答一下这三个问题是为什么,然后要怎么改?{:10_285:} 谢谢

倒戈卸甲 发表于 2020-4-24 18:16:52

第一个可能你写了一个有参的构造函数,但没写空参的构造函数。第二三个问题是同一个,在有的编译器可以通过有的不行。也可能是你后面代码通过p对字符串内容做了修改,而字符串是不可变的。直接的解决办法是用字符数组temp存储字符串,再把pet指向temp

人造人 发表于 2020-4-24 18:25:28

1. 在共用体(union)中不能出现类对象,因为没办法保证类对象的构造函数和析构函数被正确调用,那些没有构造函数和析构函数的类可以出现在共用体中

人造人 发表于 2020-4-24 18:27:20

2. C++对类型要求比较严格, const char * 和 char * 在C++中是两个不同的类型
字符串常量是 const char *
把 char *pet; 改成 const char *pet;

hzxwonder 发表于 2020-4-24 18:43:55

人造人 发表于 2020-4-24 18:27
2. C++对类型要求比较严格, const char * 和 char * 在C++中是两个不同的类型
字符串常量是 const char * ...

可是小甲鱼的视频中他是char*就通过了,,

人造人 发表于 2020-4-24 18:46:03

hzxwonder 发表于 2020-4-24 18:43
可是小甲鱼的视频中他是char*就通过了,,

从前是从前,现在是现在,从前很多的东西都不能用了
另外,截图看看

hzxwonder 发表于 2020-4-24 19:17:27

人造人 发表于 2020-4-24 18:46
从前是从前,现在是现在,从前很多的东西都不能用了
另外,截图看看

像这样

人造人 发表于 2020-4-24 19:43:33

hzxwonder 发表于 2020-4-24 19:17
像这样

看起来是 vc6
vc6也许可以,但是最新的编译器都不行

hzxwonder 发表于 2020-4-24 19:54:19

人造人 发表于 2020-4-24 19:43
看起来是 vc6
vc6也许可以,但是最新的编译器都不行

好的,谢谢

hzxwonder 发表于 2020-4-24 19:56:00

倒戈卸甲 发表于 2020-4-24 18:16
第一个可能你写了一个有参的构造函数,但没写空参的构造函数。第二三个问题是同一个,在有的编译器可以通过 ...

谢谢你,我的问题主要是3楼说的那样,可惜不能设置多个最佳{:10_266:},真的感谢

倒戈卸甲 发表于 2020-4-24 19:59:29

hzxwonder 发表于 2020-4-24 19:56
谢谢你,我的问题主要是3楼说的那样,可惜不能设置多个最佳,真的感谢

我也就是大概看了一下,都没看到你类对象是放在共用体里面的。
页: [1]
查看完整版本: c++p13联合问题